下面的循环,能否优化,执行速度更快?
for(int x=0;x<=60000;x++)
{
for(int y=0;y<60000;y++)
{
……根据x、y的值执行语句
}
}
for(int x=0;x<=60000;x++)
{
for(int y=0;y<60000;y++)
{
……根据x、y的值执行语句
}
}
解决方案 »
- 为什么属性名称和方法的名称不能相同呢?
- devenv.exe应用程序错误
- 求助!!C#如何打开EXCEL文件并且进行修改???
- Remoting 下载文件疑问
- C#操纵Excel的问题,那位如果以往碰到了这种情况,帮忙解答一下,不胜感激
- 问一下大家 public test (string text) : this() { Text = text; } 是什么意思啊,谢谢,在线等**********
- GRIDVIEW问题显示!
- Shell 钩子高手进内. 万分感谢
- 请教一个关于Winform子窗体关闭后重新排列的问题.谢谢.
- 各位大虾,请问在.Net如何实现在屏幕上任何地方画图?
- 请教如何在服务端读取xml节点内容将其发送到客户端,我用的是C#socket
- 搜索注册表值,更改他,出现问题,请高手帮忙。
如果循环里面的代码如下所示:
long l1;
for(int x=0;x <=60000;x++)
{
for(int y=0;y <60000;y++)
{
long l2=x+y;
}
}
则可以优化如下:
long l1;long l2;
for(int x=0;x <=60000;x++)
{
for(int y=0;y <60000;y++)
{
l2=x+y;
}
} 原因:l2变量的内存申请次数大大减少!for循环优化的思想:把可以放在for循环外面的代码尽量放在for循环外面,对于多层for循环,尽量放在最外层!
for(int x=0;x <=60000;x++)
{
for(int y=0;y <60000;y++)
{
textbox1.text = x.String() + "-" + y.String() +"\r\n";
}
}
for(int x=0;x <=60000;x++)
{
for(int y=0;y <60000;y++)
{
textbox1.text = x.String() + "-" + y.String() + "\r\n";
}
}
在使用多重循环语句时,应该将最长的循环放在最内层,最短的循环放在最外层,以减少CPU 跨切循环层的次数
for(int x=0;x <=60000;x++)
{
for(int y=0;y <60000;y++)
{
textbox1.text = x.String() + "-" + y.String() + "\r\n";
}
}
以上应改成如下的for(int y=0;y < 60000;y++)
{
for(int x=0;x<=60000;x++)
{
textbox1.text = x.String() + "-" + y.String() + "\r\n";
}
}
在内层将会多算X=60000是否会成立的条件,比外层多判断一次