VB.NET内存管理
更新:我可能将内存使用问题与UI共享相同的线程与处理相混淆(如下面的MusiGenesis所指出的).但是关于内存使用情况.我仍然无法找到VB.net特定的语法,尽管人们已经在下面指出了一些很棒的.Net和C#信息(如果我对这些技术更精通,那么可以适应VB.net的工作).
我正在创建一个VB.Net应用程序. >该应用程序基本上解析数据 一般概念工作正常,但是我遇到的问题是,当程序用于加载越来越多的文件时,任务管理器上的Mem Usage不断增长. 在启动时,在做任何事情之前,VB应用程序有27,000 K. 我看过.Net Memory Profiler并没有真正能够做到这一点. 我的一般问题是:是否有任何好的教程/书籍/博客/等显示有关管理VB.Net应用程序中的内存的更深入的教程(即如何/何时处置/关闭等),或者是否有人有一些从那里经验的具体提示. 解决方法
首先,您需要意识到任务管理器正在向您显示操作系统已分配给您的应用程序的内存量.这不一定是实际使用的内存量.当.NET应用程序首次启动时,操作系统会为其分配内存,就像对任何进程一样.然后,.NET运行时进一步划分该内存并管理它的使用方式.运行时可以被认为是“贪婪”,因为一旦操作系统分配了内存,除非操作系统特别要求,否则它不会将其返回.结果是任务管理器中的内存使用不准确.
要准确了解内存使用情况,您需要使用性能监视器并添加适当的计数器. 至于IDisposable和dispose模式,你可能不会发现很多用语言特定的术语来讨论它,因为它是由.NET Framework本身提供的并且与语言无关.无论您使用何种语言,模式都是相同的,只有语法不同. 有几个参考资料可以为您提供有关内存管理如何工作的信息.我有两个博客文章,一篇讲述Using Garbage Collection in .NET,另一篇列出了我曾经在.NET中创建两个关于内存管理的演示文稿的各种resources. 最好的“经验法则”是,如果一个类实现了IDisposable,它会出于某种原因这样做,你应该确保在完成使用实例时调用Dispose().使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |