问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何找到内存泄漏在.NET应用程序的原因

发布网友 发布时间:2022-05-24 07:34

我来回答

1个回答

热心网友 时间:2023-10-08 21:02

.net应用程序内存原理是由GC进行分代控制的。新生代(0代),年轻代(1)与老年代(2)会在GC不同的时间进行回收,所以基本上不用考虑内存泄露的问题。
但GC回收毕竟通过系统回收的,内存泄露也在所难免——往往泄露的原因是使用了系统资源而没有正确回收所导致的。比如写文件时程序突然崩溃,GC未参于回收等原因,部分系统资源需要显式回收(使用终结器或Disposable接口),而这类似的情况都会造成内存的泄露(电显式回收是说明使用的资源没有经过GC回收器所以要显式回收)。
所以在net编程时防止内存泄露的,对于非托资源的调用时要注意显式回收(写终结器或disposable接口),对于托管资源尽量使用using(已经实现IDisposable接口),防止系统崩溃或无法正常回收资源。
还有一种特殊的情况,它其实已经算是非托资源的一种,就是多线程编程时的线程回收,这个一旦不注意就会出现线程没有正确回收而导致内存泄露。所以对于多线程不熟悉的尽量不要使用底层多线程编程,进行使用线程池或TPL实现。
对于资源未回收导致内存的泄露,本身内容已经超出了.net软件运行的环境,所以对于直接查询来说,需要使用第三方工具(内存泄露查询工具等)本身上对其是无监控的,所以多从代码上分析,除此之外别无他法(根本没有任何途径能告诉是哪行或哪个成员引发的,反过来想想如何能知道是哪行代码引发的,那么GC不直接注意到这行代码在崩溃前直接回收其资源不就可以了)。
所以基本上来说,第五代语言都无法确实什么情况或原因下引了内存泄露,如果编译器或运行JIT能找出的话(不用找出蛛丝马迹),它完全有能力保证不会泄露了。之所以泄露还是他无法监控,超出了该编程译或JIT的能力范围了。所以只能从第三方(直接辅助查询应用程序开辟的内存空间进行记录)来标识内存泄露,也只是标识内存泄露及处理泄露问题,但对于原因它也是*为力的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电视屏幕不亮但有声音是怎么回事 电视只出声音不出画面怎么调 每天做踩单车的运动能瘦腿吗? 踩单车能瘦腿吗 知道踩自行车能瘦腿吗 注意姿势才是关键 踩自行车可以瘦腿吗 踩单车的好处是什么?怎样进行瘦腿? Adobe AIR是什么?能做什么? adobeair是什么软件,可不可以卸载?? 15--18万之间的车 .Net内存泄露的什么是.Net内存泄露 用于男孩起名的字女孩用了会怎样,昱 字说的是用于男孩,我给女儿用了!不会糟糕吧? 昱晔这意思好不好,是女孩名字 大肠杆菌DNA复制起始的步骤? DNA复制时是从5撇端开始还是从3撇端开始的? DNA复制的过程? 小米云服务弹出来升级,不小心点没了,怎么在找到它 云服务不能升级 为什么最近突然有了双下巴? 3.5*4.5是几寸照片 生料带怎么缠不漏气 让你最难忘的电影台词是哪句? 有哪些堪称经典的电影台词? 脚趾矫正器的脚趾矫正器设计 轻度大脚骨,怎么办,有人说戴矫正器会越来越严重,真的吗 60秒自动重起,高手进来 治拇外翻先戴矫正器 我使用生命立拇外翻矫正器一周后,脚很疼,... 脚拇指外翻矫正器在使用的同时能不能走路 睡觉时用了大脚骨矫正器起床后有一点痛。怎么回事阿 如何防止.net程序内存泄露? .Net 内存溢出问题怎么才能很好的解决呢? 用腾讯手游助手玩刺激现场,出现无法连接到服务器,请尝试切换网络或开启系统设置内对游戏的无线数据授权 .net System.OutOfMemoryException 内存溢出 win2003,4G内存,.NET写的系统服务,每次运行到内存占用1G左右时就抱内存溢出,求原因和解决方法 我的系统为什么连接不上服务器 .net StreamReader .Readline报内存溢出OutOfMemory,求助!! 创建mesh,为什么会提示有内存泄漏 移动用户办理国际漫游和国际长途需要什么条件? 假如明天是儿童节,你的家人会做些什么加翻译英语作文5句话? 物理 交变电流 中性面 交变电流,t1时候是与磁感线平行,t2是中性面对不对 交变电流的题目中,线圈都是默认为从中性面开始转的吗? 高中交变电流概念不懂,求解! 为什么我怎么看怎么理解都觉得电流方向变化一次?为什么是两次?从哪里到 怎么查电话号码本人 0基础的人可以学动画吗? 求一篇人物描写800字记叙文 初中二百字人物描写的作文 描写人物外貌的作文800字 和谐作文800字要人物描写和环境烘托