【发布时间】:2010-11-30 00:40:05
【问题描述】:
我正在编写一个基于 qt 的 c++ 应用程序,我需要能够检测内存碎片,以检查当前系统是否能够实际承受内存负载:程序加载一个大图像(15/21 兆像素是规范)在内存中,然后对其执行一些过滤(w/稀疏矩阵)。 例如,我在 Windows 中遇到内存碎片问题,而 VMMap 在这方面非常有帮助:问题是一些 DLL(Wacom 平板电脑“wintab32.dll”和 UltraMon 应用程序)没有重新定位,所以拆分地址空间在进程的 0x10000000-0x30000000 VA 处。
我想为应用程序提供对碎片问题的某种认识,并想知道是否已经存在提供 VMMAP 提供的信息的跨平台 (linux/mac/win32) 方法。
【问题讨论】:
-
要挑剔:堆的存在是一个实现细节,C++参考free-store。
-
你是对的,但我是故意这样做的,因为“堆”似乎是一个更普遍接受的术语;)
-
这不仅仅是术语的不同。免费商店根本不需要堆。然而,这只是实现决定解决内存分配请求。
标签: c++ memory heap-memory detect fragmentation