在正常的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左右的耗时统计时,使用这个