关于C# 通过new申请大内存的耗时问题

    在正常的C#使用中,平时没有关注过new byte[]之类的耗时问题。近期在做一个跟耗时相关的项目时,才发现申请内存也是耗时的,代码如下:

for(int i=0;i<1000;i++)
{
    Stopwatch st = new Stopwatch();
    st.Start();
    byte[] imagePre = new byte[2048 * 2048 * 2];
    byte[] imageDarkNoise = new byte[2048 * 2048 * 2];
    Utility.LogControl.Info(st.ElapsedMilliseconds.ToString());
    //Thread.Sleep(300);
}
			
Utility.LogControl.UI("Complete");

测试发现:

1)每次循环等待300ms,1000次平均耗时0.55ms

2)连续循环,不等待,1000次平均耗时1.5ms

因此,如果连续的操作内存,这种耗时还是要考虑的。

另外stopwatch这个类用于统计时间比较精确,可以到us级。建议要扣ms左右的耗时统计时,使用这个

猜你喜欢

转载自blog.csdn.net/Morlong/article/details/90172149