在VB6应用程序中识别内存消耗的工具 [英] Tools to identify memory hogs in VB6 applications

查看:86
本文介绍了在VB6应用程序中识别内存消耗的工具的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

哪些工具可用于将VB6应用程序中的内存消耗归因于它的多个组件? 我可以通过查看各种计数器(例如私有资源,工作集等)来获得整个应用程序消耗的内存,例如,在Process Explorer中.我想更进一步,了解运行时创建的各种组件或对象消耗了多少内存.例如,找出运行时在缓存数据的大型集合消耗了多少内存,以及如何根据集合中元素的数量进行更改.

解决方案

我不确定任何公开可用(免费)的工具会将VB6代码剖析到模块级别.有几种可用于C/C ++和.NET的内存分析器,但是在VB6上我看不到很多.看起来该地区的所有旧供应商(IBM Purify,Compuware Devpartner/Boundschecker)都已被收购,或仅转为.NET支持.

您可以尝试 GlowCode .它声明了对C ++的支持,但也强调了Win32本机x86映像.

Microsoft发布 DebugDiag ,它支持.NET或Win32的内存泄漏检测,尽管我从未在VB中使用它.它可能不会显示出对模块级别的未完成分配,但是我敢打赌,它将至少归因于哪些库/dll已分配了最多的内存.

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.

解决方案

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.

You might try GlowCode. It states C++ support, but also stresses Win32 native x86 images.

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应用程序中识别内存消耗的工具的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆