4

尝试在 Windows 应用程序中查找一些内存泄漏时,我遇到了gflags的问题。

当我打开ust标志(为了收集内存分配堆栈跟踪)时,我的应用程序的内存增加得比标志关闭时快得多(大约在 10 分钟内达到 800MB。这远非 50-当标志关闭时,我得到 100MB/天)。

我读过堆栈跟踪的最大值为 32MB,所以我想这应该不是问题。

该计算机是4x Intel(R) Xeon(R) CPU E5410 @ 2.33GHz

如果有人能给我一些提示,我将不胜感激。

谢谢!

4

2 回答 2

4

堆栈跟踪数据库不是 ust 标志的唯一影响。它还为每个分配添加至少 32 个字节,以存储其堆栈跟踪 ID。如果涉及大量小分配,这可以解释您的内存增加。如果您使用附加的调试器启动进程或使用调试目标编译进程,则 Windows 堆将设置为调试模式,并且每次分配的开销会更大。

于 2010-02-25T18:10:52.413 回答
1

您可以使用 /tracedb SizeInMB 设置最大跟踪数据库大小。有关章节,请参阅MSDN Gflags 文档。默认情况下,没有最大尺寸可以解释您所看到的行为。

于 2009-12-04T15:19:14.703 回答