76得票8回答
L1缓存未命中的代价是什么?

编辑:供参考(如果有人偶然发现了这个问题),Igor Ostrovsky写了一篇关于缓存未命中的绝妙文章。它讨论了几个不同的问题并展示了例子数据。结束编辑 我进行了一些测试<long story goes here>,想知道性能差异是否由内存缓存未命中导致。以下代码演示了问题,并...

270得票6回答
我能在GDB中设置“内存访问”断点吗?

我正在通过gdb运行一个应用程序,并希望为特定变量被访问/更改的任何时候设置断点。有没有好方法可以做到这一点? 我还对其他监视C / C ++变量的方法感兴趣,以查看它何时发生更改。

7得票3回答
在C++中,我能否通过(unsigned) char*读取任何可读的有效内存位置?

今天我的搜索工具好像有点不太靠谱。我想知道在标准C++中是否能够通过一个(无符号的(?))char *来检查“任何”内存地址,其中“任何”是指程序内任何对象或数组(或其内部)。所以我想请问这种操作是否合法。 举个例子: void passAnyObjectOrArrayOrSomethin...

10得票1回答
Solidworks,如何追踪解决Isldworks.CloseDoc中的内存访问冲突错误?

我在C#中的一个插件中有两个不同的函数。最近(显然)Solidworks在执行这两个函数的某些部分时崩溃了(可能还有更多,但目前我只发现这两个函数出现了问题)。在调试下,这两个函数都会给我一个“内存访问违规错误”。每次出现错误都是在关闭活动文档的那一行,并且大约95%的时间都会出现该错误。 ...

12得票2回答
如何在VBA中处理DLL错误?

API声明:Private Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" ( _ ByVal lpPrevWndFunc As Long, _ ...

7得票3回答
x86中,LEA是唯一一个带有内存操作数但不访问内存的指令吗?

我正在使用来自the bastard的 x86 反汇编库 libdis,并尝试查找哪些指令访问内存。 参考这两个指令: mov eax, [ebx + 10] lea eax, [ebx + 10] 在libdis中,这两种情况都列为指令类型insn_mov,并且地址操作数在两种情况下...

9得票5回答
如何优化内存访问模式/减少缓存失效,以适用于此数组抽取/下采样程序?

我最近被要求提供一段能够“就地”降采样/下采样数组的代码。这个“降采样”函数接受一个整数数组,并将数组中偶数索引i处的条目存储在索引i/2处。对于数组中所有条目都是如此。 这会将原始数组中的所有偶索引条目移动到数组的前半部分。然后可以将数组的其余部分初始化为0。总体结果是一个数组,保留了原始...

101得票4回答
在CUDA中,什么是内存合并,如何实现?

什么是CUDA全局内存事务中的“coalesced”?即使阅读了我的CUDA指南,我仍然无法理解。如何做到这一点?在CUDA编程指南的矩阵示例中,按行访问矩阵称为“coalesced”,按列访问称为“coalesced”? 哪一个是正确的,为什么?

16得票1回答
现代x86/amd64芯片上的L1、L2、L3 CPU缓存如何关闭?

每个现代高性能的x86/x86_64架构CPU都有一些数据缓存层次结构:L1、L2,有时还有L3(在非常罕见的情况下还有L4),从/到主RAM加载的数据会被缓存在其中一些缓存中。 有时程序员可能希望某些数据不要被缓存在某些或所有缓存级别中(例如,当想要memset 16 GB的RAM并仍然保...

13得票2回答
为什么我会收到“double free or corruption”内存访问错误?

我遇到了以下类型的错误。我知道这与我不正确地访问内存有关,但我不知道具体是哪里出了问题。请帮助我找出我的错误所在。 *注意:我已经简化了我的函数,并且其中变量的作用并不明显,我只需要知道我如何实现函数不正确或者我在哪里误用了内存访问。int my_function(char const *f...