关于C#的性能问题一:很奇怪的 for循环,求解释

andyqq8 andyqq8 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
 
代码:
string str =string.Empty;
Stopwatch watch = new Stopwatch();
watch.Start();
for (int i = 0; i < 10000 * 10000; i += 1)
{
str = "a"; ;
}
watch.Stop();
textBox1.Text += ("用时:" + watch.ElapsedMilliseconds.ToString() + "毫秒\r\n");

结果:
用时:386毫秒


 
代码:
Stopwatch watch = new Stopwatch();
watch.Start();
for (int i = 0; i < 10000 * 10000; i += 1)
{
string str = "a"; ;
}
watch.Stop();
textBox1.Text += ("用时:" + watch.ElapsedMilliseconds.ToString() + "毫秒\r\n");

结果:
用时:431毫秒

 
代码:
for (int x = 0; x < 2; x++)
{
Stopwatch watch = new Stopwatch();
watch.Start();
for (int i = 0; i < 10000 * 10000; i += 1)
{
string str = "a"; ;
}
watch.Stop();
textBox1.Text += ("用时:" + watch.ElapsedMilliseconds.ToString() + "毫秒\r\n");
}

结果:
用时:393毫秒
用时:393毫秒


 
代码:
for (int xx = 0; xx < 2; xx++)
{
for (int x = 0; x < 2; x++)
{
Stopwatch watch = new Stopwatch();
watch.Start();
for (int i = 0; i < 10000 * 10000; i += 1)
{
string str = "a"; ;
}
watch.Stop();
textBox1.Text += ("用时:" + watch.ElapsedMilliseconds.ToString() + "毫秒\r\n");
}
}

结果:
用时:431毫秒
用时:431毫秒
用时:431毫秒
用时:432毫秒


 
代码:
for (int xxx = 0; xxx < 2; xxx++)
{
for (int xx = 0; xx < 2; xx++)
{
for (int x = 0; x < 2; x++)
{
Stopwatch watch = new Stopwatch();
watch.Start();
for (int i = 0; i < 10000 * 10000; i += 1)
{
string str = "a"; ;
}
watch.Stop();
textBox1.Text += ("用时:" + watch.ElapsedMilliseconds.ToString() + "毫秒\r\n");
}
}
}

结果:
用时:389毫秒
用时:396毫秒
用时:392毫秒
用时:390毫秒
用时:389毫秒
用时:390毫秒
用时:389毫秒
用时:391毫秒




这个性能和循环数量好像无关,但和奇偶有关呀????这是为什么呀
...全文

相关推荐

评论 93
收藏 已收藏
分享
返回顶部
andyqq8
C# 111,129 成员 642,539 内容