windows - MS Application Verifier 膨胀堆栈?

标签 windows recursion stack application-verifier

有人知道应用程序验证器的工作原理吗?

我目前正在开发一个大量使用递归的树解析应用程序。该程序似乎按预期工作,但我确实在一些地方使用了“new”,所以我想到使用 Application Verifier 检查内存泄漏。 AV 没有报告任何错误,但是,在几分钟内,应用程序的图像迅速增长到大约 1 GB,而没有它只能达到大约 60 兆字节。 我似乎找不到任何内存泄漏,并且看到正在进行多少递归,我开始怀疑 AV 出于测试目的在堆栈上放置了额外的项目,并且随着递归的深入,额外的“垃圾”堆积起来并使程序崩溃。

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

最佳答案

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

手边,我不知道有什么功能会影响堆栈的使用。我相信如果不使用检测重新编译代码就很难弄乱堆栈,而 AppVerifier 不需要使用检测进行编译。

关于windows - MS Application Verifier 膨胀堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11745311/

相关文章:

mysql - 使用 MySQLInstallerConsole.exe 和 chaning datadir 安装 MYSQL 5.6.21

windows - 我们应该将哪个 "platform"用于通知程序组件?

recursion - 为什么这在 DrRacket 中有效,但在控制台的 Racket 中无效

c++ - 达到基本情况时如何返回值

linux - 在不使用弹出操作的情况下读取数据是否有优势?

windows - 如何创建 Windows 服务来运行 powershell 脚本?

.net - 系统更新后 Jenkins 服务不再启动

python - 无法调用实现递归调用的方法

java - 将 Deque 定义为 LinkedList

ios - 如何在IOS中维护堆栈?