MS Application Verifier膨胀堆栈?

时间:2012-07-31 16:59:53

标签: windows recursion stack application-verifier

有没有人知道Application Verifier的工作原理?

我目前正在开发一个树解析应用程序,它大量使用递归。该程序似乎按预期工作,但我确实使用" new"在一些地方,所以我想用Application Verifier检查内存泄漏。 AV没有报告任何错误,但是,在几分钟内,应用程序的图像很快就会增长到大约一千兆字节,而没有它只会达到大约60兆。 我似乎无法找到任何内存泄漏,并且看到正在进行多少递归,我开始怀疑AV为了测试目的而在堆栈上放置了额外的项目,并且随着递归进一步加深了额外的&#34 ;垃圾"建立并崩溃该计划。

有没有人对此事有任何见解?

1 个答案:

答案 0 :(得分:1)

可能取决于您启用的AppVerifier功能。有一个堆检查功能,可以将每个分配放在自己的页面中,并在分配之间分配保护页面。如果您要分配大量小对象,此功能将大大增加内存使用量。这是此类测试的正常行为,无需担心。

关闭,我不知道任何影响堆栈使用的功能。我相信如果没有使用检测重新编译代码就很难搞乱堆栈,并且AppVerifier不需要使用检测进行编译。