问题描述
有哪些工具可用于将 VB6 应用程序中的内存消耗归因于它的多个组件?我可以通过查看各种计数器(私有字节、工作集等)来获取整个应用程序消耗的内存,例如,在 Process Explorer 中.我想更深入地了解运行时创建的各种组件或对象消耗了多少内存.例如,计算在运行时缓存数据的大型集合消耗了多少内存,以及它如何根据集合中元素的数量而变化.
What tools are available to attribute memory consumptions in VB6 application to it's multiple components?I can get the memory consumed by the entire application by watching various counters (Private Bytes, Working Set etc.), for example, in Process Explorer. I want to go level deeper than that and understand how much memory is consumed by various components or objects created at runtime. For example, figure out how much memory is consumed by large collection that's caching data at run time and how it changes based on number of elements in the collection.
推荐答案
我不确定是否有任何公开可用的(免费)工具将 VB6 代码分析到模块级别.有几个可用于 C/C++ 和 .NET 的内存分析器,但在我看到的 VB6 上并不多.看起来这个领域的所有老供应商(IBM Purify、Compuware Devpartner/Boundschecker)要么被收购,要么只支持 .NET.
I'm not sure any publicly available (free) tools will profile VB6 code down to the module level. There are several memory profilers available for C/C++ and .NET, but not a lot on VB6 that I saw. Looks like all the old vendors (IBM Purify, Compuware Devpartner/Boundschecker) in this area have either been bought out, or moved on to .NET support only.
您可以尝试 GlowCode.它声明了 C++ 支持,但也强调了 Win32 本机 x86 图像.
You might try GlowCode. It states C++ support, but also stresses Win32 native x86 images.
Microsoft 发布 DebugDiag,它支持.NET 或 Win32 的内存泄漏检测,尽管我从未在 VB 中使用过它.它可能不会显示模块级别的出色分配,但我敢打赌它至少会确定哪些库/dll 分配了最多的内存.
Microsoft publishes DebugDiag, which has support for memory leak detection for .NET, or Win32, though I've never used it with VB. It might not show outstanding allocations to the module level, but I'd bet it will at least attribute which libraries/dlls have allocated the most memory.
这篇关于在 VB6 应用程序中识别内存占用的工具的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!