定义变量 赋值变量 效率 循环中定义变量并赋值和先定义好变量,循环中只赋值那个效率高 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 由于不管是那种方式 比如循环N次 都肯定有N次定义与N次赋值 所以初看两者效率一致但是CPU执行时 肯定是后者效率高 因为期间只负责复制 一个MOV就搞定 如果先定义再复制就相当于前面做了!@¥#!@¥!@¥@!¥很多条指令后面加一条MOV循环的奥义告诉我们 想要速度快 尽量让一个循环只做一件单一的事情这个是鄙人的分析 [1]前者在VB.net中通不过,C#中可以,语言规范有差别。[2]在C#中,如果没有闭包的情况下,编译器会生成相同结果。定义在外 int j; for (int i = 0; i < 100; i++)0000002b xor esi,esi 0000002d nop 0000002e jmp 00000038 {00000030 nop j = 100;00000031 mov ebx,64h }00000036 nop for (int i = 0; i < 100; i++)00000037 inc esi 00000038 cmp esi,64h 0000003b setl al 0000003e movzx eax,al 00000041 mov edi,eax 00000043 test edi,edi 00000045 jne 00000030 }定义在内 for (int i = 0; i < 100; i++)0000002b xor esi,esi 0000002d nop 0000002e jmp 00000038 {00000030 nop int j; j = 100;00000031 mov ebx,64h }00000036 nop for (int i = 0; i < 100; i++)00000037 inc esi 00000038 cmp esi,64h 0000003b setl al 0000003e movzx eax,al 00000041 mov edi,eax 00000043 test edi,edi 00000045 jne 00000030 }[3]在C#中,在有闭包的情况下,结果大相径庭http://topic.csdn.net/u/20090821/13/7c30e8cb-3d37-4d4f-9c11-0df1dd7be8f4.html见:奇怪的局部变量,分别对应其中“闭包一”和“闭包二”中int copy的情况。 ABC.aspx .Designer.cs , ABC.aspx .cs , ABC.aspx 是如何关联的? 有没有一个HTTP协议上传的文件数据流解析类 winform画图的问题 如何用程序关闭WebBrowser中的网页(javascript)弹出的对话框 一个文件传输解决方案问题,思路即可 在使用DataGrid更新数据时 出错!在线等~拜托拜托 双核CPU下获取随机数问题. textarea问题!急! 菜鸟问题!急 c#与access的操作,向原有数据中更新照片,出现这个错误,网上找了很多都不行 获取鼠标坐标的问题 文件上传与下载有几种方法实现
但是CPU执行时 肯定是后者效率高 因为期间只负责复制 一个MOV就搞定 如果先定义再复制就相当于前面
做了!@¥#!@¥!@¥@!¥很多条指令后面加一条MOV
循环的奥义告诉我们 想要速度快 尽量让一个循环只做一件单一的事情
这个是鄙人的分析
定义在外
int j;
for (int i = 0; i < 100; i++)
0000002b xor esi,esi
0000002d nop
0000002e jmp 00000038
{
00000030 nop
j = 100;
00000031 mov ebx,64h
}
00000036 nop
for (int i = 0; i < 100; i++)
00000037 inc esi
00000038 cmp esi,64h
0000003b setl al
0000003e movzx eax,al
00000041 mov edi,eax
00000043 test edi,edi
00000045 jne 00000030
}
定义在内
for (int i = 0; i < 100; i++)
0000002b xor esi,esi
0000002d nop
0000002e jmp 00000038
{
00000030 nop
int j;
j = 100;
00000031 mov ebx,64h
}
00000036 nop
for (int i = 0; i < 100; i++)
00000037 inc esi
00000038 cmp esi,64h
0000003b setl al
0000003e movzx eax,al
00000041 mov edi,eax
00000043 test edi,edi
00000045 jne 00000030
}[3]在C#中,在有闭包的情况下,结果大相径庭
http://topic.csdn.net/u/20090821/13/7c30e8cb-3d37-4d4f-9c11-0df1dd7be8f4.html
见:奇怪的局部变量,分别对应其中“闭包一”和“闭包二”中int copy的情况。