日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

for循环与while循环效率对比·5年以下编程经验必看C#】

發布時間:2024/8/26 C# 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 for循环与while循环效率对比·5年以下编程经验必看C#】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

for效率測試代碼:

using System; using System.Diagnostics; namespace Action {class Program{static void Main(string[] args){GC.Collect();//清理一下先Random ra = new Random();int count = 1000000;//100WDateTime start = DateTime.Now;for (int i = 0; i < count; i++){new String(""+i);}DateTime end = DateTime.Now;double usedMemory = Process.GetCurrentProcess().WorkingSet64 / 1024.0 / 1024.0;Console.WriteLine("耗時:" + (end - start).TotalMilliseconds + "毫秒");Console.WriteLine("消耗內存:" + usedMemory + "M");}} }

100W次消耗時間50.88ms,消耗內存19.50M

while效率測試代碼:

using System; using System.Diagnostics; namespace Action {class Program{static void Main(string[] args){GC.Collect();//清理一下先Random ra = new Random();int count = 1000000;//100WDateTime start = DateTime.Now;int i = 0;while (i < count){new String("" + i);i++;}DateTime end = DateTime.Now;double usedMemory = Process.GetCurrentProcess().WorkingSet64 / 1024.0 / 1024.0;Console.WriteLine("耗時:" + (end - start).TotalMilliseconds + "毫秒");Console.WriteLine("消耗內存:" + usedMemory + "M");}} }

100W次消耗時間50.92ms,消耗內存19.59M

編碼文件對比:

for:

while:

由于不能編入太多文字就只能截圖了。

總結:

1、for循環與while循環效率測試上看差不多。

2、從編碼上看,編譯的exe文件完全相同,應該字節碼是一樣一樣的。

3、在C#中兩種循環效果相同。

單獨方法編譯測試:

public void forTest(){int i;for (i = 0;i&lt;100000000;i++){}} public void whileTest(){int i=0;while (i&lt;100000000){i++;}}

但看兩端代碼編譯后Code都一樣:【i小于100000000】

Code:stack=5, locals=4, args_size=10: invokestatic #2 // Method java/lang/System.currentTimeMillis:()J3: lstore_14: iconst_05: istore_36: iload_37: ldc #3 // int 1000000009: if_icmpge 1812: iinc 3, 115: goto 618: getstatic #4 // Field java/lang/System.out:Ljava/io/PrintStream;21: invokestatic #2 // Method java/lang/System.currentTimeMillis:()J24: lload_125: lsub26: invokevirtual #5 // Method java/io/PrintStream.println:(J)V29: return

?

總結

以上是生活随笔為你收集整理的for循环与while循环效率对比·5年以下编程经验必看C#】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。