使用gflags + ust,进程内存增加得更快

时间:2009-12-02 09:17:43

标签: windows memory-leaks windbg gflags

在尝试在Windows应用中发现内存泄漏时,我遇到了 gflags 的问题。

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

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

计算机是 4x英特尔(R)Xeon(R)CPU E5410 @ 2.33GHz

如果有人能给我一些暗示,我真的很感激。

谢谢!

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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