百科问答小站 logo
百科问答小站 font logo



asp.net 应用占用内存过大如何排查? 第1页

  

user avatar   jeffz 网友的相关建议: 
      

这种么,基本就是分配太快来不及回收或是GC还不觉得有必要回收,你可以试试加个force GC的功能,执行下估计内存也能降。


Memory Profiler除了拿快照,还可以追踪这段时间里分配了哪些对象,哪里分配的,然后看看分配体积最多的是什么对象。


再不行就adplus -hang获取dump,用windbg慢慢分析。


user avatar   WaynebabyWang 网友的相关建议: 
      

Memory profile 的过程 都是先强制GC一下,然后看看所有的对象的引用 Map1, 然后重复运行目标流程N次,再强制gc一下, 看看对象的引用Map2


如果目标流程有内存泄漏,那么 Map2 -Map1 的对象一般就是内存泄露的内容。


不做强制GC就会有大量的无关临时对象加入比较 会混淆结果。


你只做了第一步 没有做第二步,所以等于你根本没做内存分析。


------------------

这个过程vs2013 已经可以完全自己完成了 不需要额外的工具的样子,

最多你在网站里面加一个强制gc的按钮,按下去就可以用任务管理器抓dump了,

第一个dump用一个vs 打开,进入内存debug模式就可以比较另一个dump

-------------------


如果没有内存泄漏,那么就是可回收的内存, 在需要内存的时候会自动GC,所以不需要担心

但是要注意自己是不是有太多拼string 的操作, 或开装箱的操作,这样会产生很多临时的无根对象,造成内存垃圾。毕竟GC也不是免费的,但这不是Memory的真实消耗 反而是cpu消耗




  

相关话题

  在asp.net mvc的视图文件(.cshtml)中引用外部文件? 
  为啥物理内存越大,windows占用的内存就越大? 
  java转C#的学习路线? 
  求指教搜索关键词:.net后台如何获取查询数据库得到的结果集以及如何返回给ajax? 
  asp.net如何处理大批量产品缓存? 
  为什么业内用.net的公司这么少? 
  微软的市值高达2.3万亿美元,相当5个腾讯,8个阿里巴巴。这种巨无霸级的公司,为啥.Net国内这么差? 
  asp.net MVC 和Web Form 相比各有什么优缺点? 
  从操作系统内存管理来说,malloc申请一块内存的背后原理是什么? 
  从WebForm转MVC开发遇到一定疑惑,盼高手指点? 

前一个讨论
如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处?
下一个讨论
Javascript 初学者如何思考才可以把脑中的东西转换成代码写出来?





© 2024-11-25 - tinynew.org. All Rights Reserved.
© 2024-11-25 - tinynew.org. 保留所有权利