亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

讀書筆記-C#中裝箱拆箱性能

2019-11-17 02:46:15
字體:
來源:轉載
供稿:網友
讀書筆記-C#中裝箱拆箱性能

前言

最近在看王濤大神的《你必須知道的.NET(第二版)》一書,嗯,首先膜拜一下&hellip;. 在書中的第五章-品味類型中,對裝箱與拆箱一節感觸很深,概念本身相信每一個程序猿都不陌生,裝箱是將值類型轉換為引用類型 ,拆箱是將引用類型轉換為值類型(ps:不小心又背了一下書),也知道裝箱與拆箱過程中將帶來性能上的問題,但是在實際的項目中往往會忽略這個問題,將可能帶來極大的效率上的問題。問題有多大,反正我哭過。簡單對比測試 在工作之余寫了個簡單的測試例子,以HashTable、ArraryList、List<T>進行了簡單的對比。 運行環境:Windows7_64(Cpu:i5; Ram:6GB)。 代碼如下:復制代碼using System;using System.Collections;using System.Collections.Generic;using System.Diagnostics;namespace Test{ /// <summary> /// 裝箱拆箱(HashTable ArraryList List<T>)對比 /// </summary> class PRogram { static void Main(string[] args) { while (true) { Console.WriteLine("循環次數:"); string strcCycleNum = Console.ReadLine(); int cycleNum = 0; if (!int.TryParse(strcCycleNum, out cycleNum)) { Console.WriteLine("無效輸入!"); continue; } HashTableCost(cycleNum); ArraryListCost(cycleNum); GenericCost(cycleNum); } } /// <summary> /// HashTable 開銷測試 /// </summary> /// <param name="cycleNum">循環次數</param> static void HashTableCost(int cycleNum) { Stopwatch sw = new Stopwatch(); Hashtable hs_Test = new Hashtable(); sw.Start(); for (int i = 0; i < cycleNum; i++) { hs_Test.Add(i, i); } sw.Stop(); ConsoleInfo(cycleNum, "HashTableCost", sw.ElapsedMilliseconds); } /// <summary> /// ArraryList 開銷測試 /// </summary> /// <param name="cycleNum">循環次數</param> static void ArraryListCost(int cycleNum) { Stopwatch sw = new Stopwatch(); ArrayList al_Test = new ArrayList(); sw.Start(); for (int i = 0; i < cycleNum; i++) { al_Test.Add(i); } sw.Stop(); ConsoleInfo(cycleNum, "ArraryListCost", sw.ElapsedMilliseconds); } /// <summary> /// 泛型 開銷測試 /// </summary> /// <param name="cycleNum">循環次數</param> static void GenericCost(int cycleNum) { Stopwatch sw = new Stopwatch(); List<int> lTest = new List<int>(); sw.Start(); for (int i = 0; i < cycleNum; i++) { lTest.Add(i); } sw.Stop(); ConsoleInfo(cycleNum, "GenericCost", sw.ElapsedMilliseconds); } /// <summary> /// 打印信息 /// </summary> /// <param name="cycleNum">循環次數</param> /// <param name="methodName">方法名稱</param> /// <param name="cost">開銷</param> static void ConsoleInfo(int cycleNum, string methodName, long cost) { Console.WriteLine(methodName + " 循環次數:" + cycleNum.ToString() + " 開銷(毫秒):" + cost.ToString()); } }}復制代碼測試結果:測試結果值對于測試結果還是很驚訝,循環添加1000次,3者都為0毫秒,在10W與100W次的結果出現了鮮明的對比分別為305ms,86ms,9ms。差距不是一般的大。對代碼進行分析:// HashTable : public virtual void Add(object key, object value);// 在Add的過程中進行了2次裝箱hs_Test.Add(i, i);HashTable.add()都會產生2次裝箱。// public virtual int Add(object value);// 產生了一次裝箱al_Test.Add(i);ArraryList.add產生2次裝箱。// 由于lTest 指定了類型(List<int>)并沒有產生裝箱lTest.Add(i);List<int>沒有產生裝箱。也可以通過IL對代碼進行分析,這里就不再列出了??偨Y在對大量數據進行操作的時候一定要注意裝箱與拆箱操作,可以用泛型代替的地方還是使用泛型吧。在平時的一般項目中的細節也需要注意,畢竟細節決定成敗,再NB的框架,也經不起這一片片的裝箱與拆箱的轟炸。(ps:隱式轉換的時候要細心,在轉換成字符串的時候習慣使用ToString(),畢竟是不產生裝箱的。)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产在线精品成人一区二区三区| 中文字幕亚洲一区二区三区五十路| 亚洲欧洲在线看| 久久精品国产亚洲| 亚洲a区在线视频| 国产精品白嫩美女在线观看| 精品国产一区二区在线| 欧美裸体xxxx极品少妇| 国产有码一区二区| 中文字幕日韩精品在线观看| 欧美激情喷水视频| 亚洲福利视频网| 欧美成人第一页| 亚洲欧美在线看| 亚洲japanese制服美女| 国产精品成人v| 久久久久国产精品免费网站| 亚洲国产精品99久久| 亚洲欧美日韩爽爽影院| 日韩电影中文 亚洲精品乱码| 国产美女精品视频| 日韩成人在线视频| 亚洲japanese制服美女| 中文在线资源观看视频网站免费不卡| 成人精品久久av网站| 欧美黑人一区二区三区| 91天堂在线观看| 福利一区福利二区微拍刺激| 国产欧美一区二区三区视频| 日韩欧美主播在线| 91成人在线观看国产| 亚洲另类图片色| 中文字幕精品www乱入免费视频| 97超碰国产精品女人人人爽| 亚洲国产精品久久久久秋霞不卡| 日韩av电影在线免费播放| 疯狂做受xxxx高潮欧美日本| 国产欧美日韩免费| 久久久女女女女999久久| 成人精品aaaa网站| 国产精品高潮呻吟久久av无限| 成人亚洲激情网| 精品福利樱桃av导航| 精品日韩视频在线观看| 欧美精品在线免费| 久久免费视频观看| 亚洲国产精品一区二区三区| 在线视频欧美日韩| 亚洲国产精品久久精品怡红院| 亚洲精品视频在线播放| 国产精品女主播视频| 久久精品国产亚洲精品2020| 久久综合国产精品台湾中文娱乐网| 久久久久久欧美| 欧美日韩中文在线观看| 国产噜噜噜噜久久久久久久久| 国产精品av网站| 91精品91久久久久久| 欧美在线视频免费播放| 91久久久久久久久| 国产精品久久久久高潮| 在线观看视频亚洲| 欧美激情视频免费观看| 日韩av免费在线| 亚洲性av在线| 亚洲女在线观看| 精品美女久久久久久免费| 69视频在线免费观看| 久久久国产精品x99av| 亚洲成年网站在线观看| 一本色道久久综合狠狠躁篇的优点| 乱亲女秽乱长久久久| 欧美一级淫片丝袜脚交| 中文精品99久久国产香蕉| 中文字幕精品—区二区| 欧美高清一级大片| 日韩av影院在线观看| 久久97久久97精品免视看| 久久久久久久久91| 91精品国产自产在线观看永久| 日韩成人在线视频观看| 精品久久久久人成| 国产精品一区二区三区免费视频| 富二代精品短视频| 17婷婷久久www| 91国内揄拍国内精品对白| 九九热r在线视频精品| 热久久免费国产视频| 欧美激情奇米色| 久久精品国产亚洲精品| 欧美极品少妇与黑人| 91精品在线观| 久久久久久18| 亚洲男人av在线| 欧美限制级电影在线观看| 97香蕉超级碰碰久久免费软件| 蜜臀久久99精品久久久久久宅男| 成人激情视频小说免费下载| 午夜剧场成人观在线视频免费观看| 在线播放国产一区中文字幕剧情欧美| 国产精品爽黄69天堂a| 亚洲伊人久久大香线蕉av| 日韩在线观看免费全集电视剧网站| 欧美大荫蒂xxx| 欧美精品少妇videofree| 日韩女优人人人人射在线视频| 欧美国产精品va在线观看| 久久久亚洲天堂| 欧美www在线| 91中文精品字幕在线视频| 深夜成人在线观看| 精品五月天久久| 国产亚洲精品美女久久久| 国产精品高清在线观看| 亚洲视频在线播放| 国产成人av网址| 国产精品亚发布| 亚洲午夜av久久乱码| 亚洲电影成人av99爱色| 日韩av电影在线播放| 精品在线欧美视频| 91久久国产综合久久91精品网站| 欧美成人小视频| 在线免费看av不卡| 亚洲精品国产综合久久| 国产精品黄视频| 在线精品视频视频中文字幕| 奇门遁甲1982国语版免费观看高清| 91成人免费观看网站| 久久99视频精品| 日韩一区视频在线| 国产精品久久久久福利| 亚洲大胆人体av| 色午夜这里只有精品| 国产精品久久久久久久久男| 亚洲天堂男人天堂| 亚洲精品动漫久久久久| 亚洲国产精品大全| 国产精品com| 色婷婷综合久久久久| 免费97视频在线精品国自产拍| 国产一区二区在线免费视频| 亚洲欧美日韩在线一区| 亚洲欧美中文日韩在线v日本| 亚洲欧洲在线播放| 色综合男人天堂| 日韩乱码在线视频| 日本成人激情视频| 91精品国产网站| 亚洲aⅴ日韩av电影在线观看| 久久影视电视剧免费网站清宫辞电视| 亚洲欧美日韩国产成人| 91人成网站www| 蜜臀久久99精品久久久久久宅男| 欧美不卡视频一区发布| 欧美中在线观看| 国产成+人+综合+亚洲欧洲| 久久久久久97| 国产精品吹潮在线观看| 久久视频在线观看免费| 国产91精品视频在线观看| 精品日韩美女的视频高清| 免费97视频在线精品国自产拍| 成人黄色av免费在线观看|