如何解决我如何知道我的代码在运行时内存的增加
|| 我知道这是一个愚蠢的问题,但是当我运行包含线程的程序时,我发现任务管理器中的应用程序的内存(VM和使用的内存)正在增加,因为此时线程已停止,所以我想知道是否有任何方法可以知道其来源,或者只是知道应用程序现在正在编译的哪一行? 。 我使用了线程监视窗口,但没有得到任何有用的信息。解决方法
您可以使用CLR Profiler应用程序获取内存消耗的快照。然后,您将能够确定问题的根源。
CLR Profiler是免费的,可在以下位置获得:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=be2d842b-fdce-4600-8d32-a3cf74fda5e1
, 如果您确定程序正在使用过多的内存,那么动手使用内存探查器将是一个不错的首选方法。
, 值得注意的是,内存分析器不会直接映射到任务管理器中的内存(VM和使用的内存)或工作集计数器。
程序的工作集是
这些网页的集合
已经存在的虚拟地址空间
最近引用。它既包括
共享和私有数据。共享的
数据包括包含所有内容的页面
说明您的申请
执行,包括DLL中的那些
和系统DLL。作为工作
设置大小增加,内存需求
增加。
如果有内存,Memory Profiler将查看专用字节,这些字节代表您正在使用的实际内存。
另请参阅Tess Ferrandez的这篇文章中的“关于性能计数器的注释以及如何不使用taskmanager”部分。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。