检查c#方法的速度和内存大小

本文关键字:内存 速度 方法 检查 | 更新日期: 2023-09-27 18:16:16

有人发现这个基本测试有什么问题吗?

var GC_MemoryStart = System.GC.GetTotalMemory(true);
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
var test = new InquiryServiceTypeData().GetActive(true);
stopWatch.Stop();
var GC_MemoryEnd = System.GC.GetTotalMemory(true);
arrayTotal[i] = (stopWatch.ElapsedTicks * 1000.0) / Stopwatch.Frequency;
size[i] = GC_MemoryEnd - GC_MemoryStart;

只是想大致估计一下该方法运行需要多长时间以及它在堆中使用了多少内存。

也就是说,有些测试使用数据集/数据表,有些使用列表,有些两者都使用。

这段代码被抛出到循环中,这样我就可以更改迭代的次数。然后显示每个方法所需的平均时间和平均大小。

编辑:GetActive方法访问数据库并返回数据。我测量的不同方法以不同的方式处理返回的数据。

方法1 -将数据返回到数据集,然后转换为对象列表。方法2 -返回一个数据阅读器并转换为一个对象列表。方法3 -前两种方法的合并。

编写代码的原因是为了解决与同事的分歧。他认为我的代码是垃圾,因为数据读取器和转换到对象列表有大量的"new"语句,这些语句在堆上放置了负载。我认为他错了。所以我想给他看指标因为他没有听我的逻辑陈述。但你不能和数字争论。

检查c#方法的速度和内存大小

非常好。

但是,您应该在计时之前调用该方法一次,这样您就不会最终计时抖动。

我建议您使用ANTS性能分析器6.3。

它非常容易安装和使用。因此,您可以快速改进。net代码。