c语言sscanf函数的用法是什么
287
2022-12-02
.net内存泄漏
使用以下两个工具进行分析 dotnet-dounters dotnet-dump
安装
dotnet tool install --global dotnet-counters dotnet tool install --global dotnet-dump
查看进程信息并找到进程编号
dotnet-counters ps
监视进程
dotnet-counters monitor -p 14660 --refresh-interval 1 监视id为14660的进程,每隔1秒钟刷新一次。
输出含义如下
[System.Runtime]% Time in GC since last GC (%) 0 #GC垃圾回收百分比Allocation Rate (B / 1 sec) 73,440 #内存分配量CPU Usage (%) 0 #CPU使用率Exception Count (Count / 1 sec) 0 #异常数量GC Fragmentation (%) 5.437#GC 堆碎片率GC Heap Size (MB) 22 #GC堆内存分配量(消耗内存)Gen 0 GC Count (Count / 1 sec) 0 #0代垃圾回收次数Gen 0 Size (B) 1,042,696 #0代垃圾回收大小Gen 1 GC Count (Count / 1 sec) 0 #1代垃圾回收次数Gen 1 Size (B) 180,520 #1代垃圾回收大小Gen 2 GC Count (Count / 1 sec) 0 #2代垃圾回收次数Gen 2 Size (B) 2,014,768 #2代垃圾回收大小IL Bytes Jitted (B) 448,237 #JIT编译的IL总节数LOH Size (B) 16,875,680 #大对象占用内存(大于85000字节的对象)Monitor Lock Contention Count (Count / 1 sec) 0 #锁竞争次数Number of Active Timers 3 #活动计数器Number of Assemblies Loaded 108 #程序集加载数量Number of Methods Jitted 6,086 #JIT编译的方法总数POH (Pinned Object Heap) Size (B) 113,608 #固定对象堆的字节数ThreadPool Completed Work Item Count (Count / 1 sec) 2 #线程池完成任务数量ThreadPool Queue Length 0 #线程池工作项队列长度ThreadPool Thread Count 5 #线程池线程数量
转储内存文件
dotnet-dump collect -p 10232 (进程编号)
分析
dotnet-dump analyze dump_20210825_225811.dmp(转储文件名)
进入分析模式后查看内存占用
dumpheap -stat
分析类型具体对象
dumpheap -mt 00007ffe88612360
gcroot -all 000002c054600480 对象编号
开启GC高并发回收
项目文件中添加
参考C# 性能诊断工具 dotnet-counters 的使用调查性能计数器 (dotnet-counters).net最佳实践二:使用finalize/dispose模式提升垃圾回收器性能.NET Best Practice No: 2: Improve garbage collector performance using finalize/dispose pattern『内存泄露』在生产环境中,.Net如何定位系统内存泄露具体位置利用dotnet-dump分析docker容器内存泄露dotnet-dump analyze 内存泄漏分析.net Core 内存过高问题解决方案
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~