您当前的位置:首页 > 计算机 > 编程开发 > .net

C#中通过代码监测进程的内存使用情况,以及性能提示和诊断工具的使用

时间:04-20来源:作者:点击数:

Google了一番,C#中似乎没有如VLD之于C++那样好用且免费的内存泄漏检测工具包。C#中比较出名的是Deleaker,不过价格实在不菲。

退而求其次,直接在代码中调用GC把进程的内存消耗的输出出来。有助于检查内存泄漏情况。代码如下:

StringBuilder sbSummary = new StringBuilder();
sbSummary.AppendFormat($"Simulation running {i} day using {Math.Round(tmpTimeCost.TotalMilliseconds / 1000, 2)} seconds.");
sbSummary.AppendLine(String.Format("Total memory: {0:###,###,###,##0} bytes", GC.GetTotalMemory(true)));
Console.WriteLine(sbSummary.ToString());

输出为:

Simulation running 1 day using 36.29 seconds.Total memory: 156,221,624 bytes
Simulation running 2 day using 23.67 seconds.Total memory: 165,827,176 bytes
Simulation running 3 day using 31.33 seconds.Total memory: 176,686,048 bytes

可以明显看到内存在漏了。

然后在使用VS自带的性能提示和诊断工具“PerfTips and Diagnostics Tools”,尝试对代码进行调优。

在这里插入图片描述

详细步骤都在官方文档里了,此处不再赘述。链接如下:

《Analyze CPU and Memory while Debugging》

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门