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

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

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

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

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

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

67得票14回答
效率:数组 vs 指针

通过指针进行内存访问比通过数组进行内存访问效率更高。我正在学习C语言,K&R中提到了上述内容。具体来说,他们说:   可以通过数组下标实现的任何操作也可以用指针完成。一般来说,指针版本会更快。 我使用Visual C++反汇编了以下代码。(我的处理器是686。我已禁用了所有优化...

35得票6回答
使用64位指针中的额外16位

我看到一篇文章说64位机器实际只使用了48位地址(特别地,我正在使用Intel Core i7)。 我原本认为额外的16位(第48-63位)对地址无关紧要,并且会被忽略。但是当我试图访问这样的地址时,我得到了一个EXC_BAD_ACCESS信号。 我的代码是:int *p1 = &...

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

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

15得票1回答
使用Golang读取随机内存位置

晚上好, 我一直在尝试构建一个扫描内存值的golang应用程序,但是我很难理解如何寻址特定的内存位置。我知道在访问应用程序内存时可以使用*变量名来进行解引用并获取地址位置,但是如何提供地址位置并将其值打印到屏幕上或获取下一个分配的任意大小的对象从RAM并打印它的值呢? 提前感谢您所愿意分享...

13得票3回答
如果两个线程读写同一块内存会发生什么?

据我理解,如果两个线程正在读取同一块内存,并且没有线程在写入该内存,则操作是安全的。但是,如果一个线程正在读取,另一个线程正在写入,会发生什么?结果是未定义的吗?还是只是读取过时的数据?如果过时的读取不是问题,那么是否可以对变量进行非同步读写?或者数据可能会损坏,而读取和写入都不正确,因此在这...

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

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

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

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