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

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》

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C#,可以使用性能分析工具来帮助我们找出代码性能瓶颈,并进行优化。下面是一些常用的性能分析工具使用方法: 1. Visual Studio性能分析器:Visual Studio自带了一个强大的性能分析器,可以帮助我们分析和优化C#代码性能使用方法如下: - 打开要进行性能分析的项目。 - 在“调试”菜单选择“性能分析器”。 - 选择要进行性能分析的启动项(例如,选择“CPU性能分析”)。 - 点击“开始分析”按钮,运行代码并进行性能分析。 - 分析结果将显示在性能分析器窗口,可以查看函数调用图、CPU使用情况内存使用情况等信息,从而找出性能瓶颈。 2. JetBrains dotTrace:dotTrace是一款功能强大的性能分析工具,可以帮助我们找出C#代码性能问题。使用方法如下: - 安装并打开dotTrace。 - 选择要进行性能分析的应用程序或进程。 - 点击“开始分析”按钮,运行代码并进行性能分析。 - 分析结果将显示在dotTrace窗口,可以查看函数调用图、CPU使用情况内存使用情况等信息,从而找出性能瓶颈。 3. PerfView:PerfView是一个免费的性能分析工具,由微软提供。使用方法如下: - 下载并打开PerfView。 - 选择要进行性能分析的应用程序或进程。 - 点击“Collect”按钮,运行代码并进行性能分析。 - 分析结果将显示在PerfView窗口,可以查看函数调用图、CPU使用情况内存使用情况等信息,从而找出性能瓶颈。 使用性能分析工具进行优化时,可以关注以下几个方面: - CPU使用情况:查看代码哪些函数占用了大量的CPU时间,是否存在性能瓶颈。 - 内存使用情况:查看代码是否存在内存泄漏或者频繁的垃圾回收。 - 函数调用图:查看函数之间的调用关系,找出函数调用次数较多或者耗时较长的地方。 通过性能分析工具的帮助,我们可以更加直观地了解代码性能问题,并进行有针对性的优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皓月如我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值