精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

IronPython和C#執行速度對比

開發 后端
其實我自己對執行速度這個問題本來并沒有什么興趣,因為以前的經驗告訴我:除非是運算密集型的程序,否則腳本語言和編譯型語言使用起來速度沒有多大差別。但是我們公司有個人知道我的想法以后,天天在我耳邊嚷嚷腳本運行速度太慢,那好吧,讓我用實驗來說服你。不過這一試,還真的出現了嚇人一跳的結果。

我構思的實驗覆蓋到下面幾個我認為是實際項目中比較有代表性的場景:

1.訪問一個稍大的數據表,遍歷所有記錄;

2.生成并操作一個列表;

3.生成并操作一個字典;

4.通過反射動態加載并調用一個方法。

C#部分的代碼,編譯時使用了/debug-和/optimize+:

Code

  1. usingSystem;  
  2. usingSystem.Data.SqlClient;  
  3. usingSystem.Diagnostics;  
  4. usingSystem.Collections.Generic;  
  5. usingSystem.Reflection;  
  6.  
  7. namespaceTest  
  8. {  
  9. classTest  
  10. {  
  11. publicstaticvoidMain(string[]args)  
  12. {  
  13. Console.WriteLine("C#:");  
  14. Measure(TestDb,"TestDb");  
  15. Measure(TestList,"TestList");  
  16. Measure(TestDict,"TestDict");  
  17. Measure(TestReflection,"TestReflection");  
  18. }  
  19.  
  20. delegatevoidFuncDelegate();  
  21.  
  22. staticvoidMeasure(FuncDelegatefunc,stringfuncName)  
  23. {  
  24. Stopwatchsw=newStopwatch();  
  25. sw.Start();  
  26. func();  
  27. sw.Stop();  
  28. Console.WriteLine("{0}used{1}ms",funcName,sw.ElapsedMilliseconds);  
  29. }  
  30.  
  31. staticvoidTestDb()  
  32. {  
  33. using(SqlConnectionconn=newSqlConnection(connStr))  
  34. {  
  35. conn.Open();  
  36.  
  37. SqlCommandcmd=newSqlCommand(sql,conn);  
  38. SqlDataReaderreader=cmd.ExecuteReader();  
  39. while(reader.Read())  
  40. {  
  41. varid=reader["Id"];  
  42. varcode=reader["Code"];  
  43. varcargoCode=reader["CargoCode"];  
  44. varlength=reader["Length"];  
  45. varwidth=reader["Width"];  
  46. varheight=reader["Height"];  
  47. varvol=reader["Vol"];  
  48. varpallet=reader["Pallet"];  
  49. }  
  50. reader.Close();  
  51. cmd.Dispose();  
  52. conn.Close();  
  53. }  
  54. }  
  55.  
  56. staticvoidTestList()  
  57. {  
  58. varlist=newList();  
  59. constintcount=100000;  
  60. for(inti=0;ilist.Add(string.Format("item{0}",i));  
  61. for(inti=count-1;i>=0;i--)  
  62. list.RemoveAt(i);  
  63. }  
  64.  
  65. staticvoidTestDict()  
  66. {  
  67. vardict=newDictionary();  
  68. constintcount=100000;  
  69. for(inti=0;idict[string.Format("key{0}",i)]=string.Format("value{0}",i);  
  70. for(inti=0;idict.Remove(string.Format("key{0}",i));  
  71. }  
  72.  
  73. staticvoidTestReflection()  
  74. {  
  75. AssemblyAssemblyassem=Assembly.LoadFrom("Lib.dll");  
  76. Typetype=assem.GetType("Lib.TestLib");  
  77. constintcount=100000;  
  78. ConstructorInfoci=type.GetConstructor(Type.EmptyTypes);  
  79. MethodInfomi=type.GetMethod("GetMessage");  
  80. for(inti=0;i{  
  81. objectobj=ci.Invoke(null);//Activator.CreateInstance(type);  
  82. mi.Invoke(obj,newobject[]{"name"});  
  83. }  
  84. }  
  85.  
  86. conststringconnStr="IntegratedSecurity=SSPI;InitialCatalog=test;DataSource=.";  
  87.  
  88. conststringsql="select*fromCargoPackageTypes";  
  89. }  

IronPython部分的代碼:

Code

  1. from__future__importwith_statement  
  2. importclr,sys  
  3. clr.AddReference('System.Data')  
  4. fromSystem.Data.SqlClientimportSqlCommand,SqlConnection  
  5. fromSystem.DiagnosticsimportStopwatch  
  6. fromSystem.ReflectionimportAssembly  
  7.  
  8. connStr="IntegratedSecurity=SSPI;InitialCatalog=test;DataSource=.";  
  9.  
  10. sql="select*fromCargoPackageTypes";  
  11.  
  12. deftestDb():  
  13. withSqlConnection(connStr)asconn:  
  14. conn.Open()  
  15.  
  16. cmd=SqlCommand(sql,conn)  
  17. reader=cmd.ExecuteReader()  
  18. whilereader.Read():  
  19. id=reader["Id"]  
  20. code=reader["Code"]  
  21. cargoCode=reader["CargoCode"]  
  22. length=reader["Length"]  
  23. width=reader["Width"]  
  24. height=reader["Height"]  
  25. vol=reader["Vol"]  
  26. pallet=reader["Pallet"]  
  27. reader.Close()  
  28. cmd.Dispose()  
  29. conn.Close()  
  30. deftestList():  
  31. lst=[]  
  32. count=100000 
  33. foriinxrange(count):  
  34. lst.append('item%d'%i)  
  35. foriinxrange(count-1,-1,-1):  
  36. lst.pop(i)  
  37. deftestDict():  
  38. d={}  
  39. count=100000 
  40. foriinxrange(count):  
  41. d['key%d'%i]='value%d'%i  
  42. foriinxrange(count):  
  43. d.pop('key%d'%i)  
  44. deftestReflection():  
  45. clr.AddReferenceToFile('Lib.dll')  
  46. fromLibimportTestLib  
  47. count=100000 
  48. foriinxrange(count):  
  49. obj=TestLib()  
  50. obj.GetMessage('name')  
  51. defmeasure(fn):  
  52. sw=Stopwatch()  
  53. sw.Start()  
  54. fn()  
  55. sw.Stop()  
  56. print'%sused%sms'%(fn.__name__,sw.ElapsedMilliseconds)  
  57. print'Python:'  
  58. measure(testDb)  
  59. measure(testList)  
  60. measure(testDict)  
  61. measure(testReflection) 

運行結果:

運行結果

對于列表和字典的操作,IronPython比C#慢3到4倍,這是意料之中的事情。沒有想到的是訪問數據庫的方法,IronPython竟然比C#還要略快,這是事先無論如何都沒有料到的。原來我以為,數據庫訪問代碼基本上是純粹的調用ADO.Net,瓶頸主要是在數據庫那一邊,IronPython在方法調用的時候應該比C#略微慢一點吧,那么總體速度也應該稍微慢一點才對。沒想到結果正好反過來!我也沒有辦法解釋為什么這里IronPython能夠做到比C#還快。不過結論應該很明顯了:訪問數據庫的時候,你無需擔心IronPython不夠快。我們的項目大多數時候效率瓶頸都是出在數據庫上面,至于程序語言快一點還是慢一點通常無關緊要,更何況這里的結果表明腳本語言有時候反而可能更快呢。

對于反射的測試,IronPython則是壓倒性的戰勝了C#。需要說明的一點是我在C#中反射生成對象使用的方法是ConstructorInfo.Invoke()。如果換成Activator.CreateInstance()的話,那么C#的時間將會縮減到230~250毫秒,不過即便這樣仍然比IronPython落后一半左右。為什么使用反射時IronPython比C#快這么多呢?或許因為它運行的時候能夠在內存中動態生成部分字節碼,從而跳過反射環節,所以更快吧。

從這個實驗的結果看,IronPython的性能可以說好到超出了我的預期。因為之前也看過其他一些相關的性能評測,比如說Ruby要比Java的運行速度慢30倍(這個比較已經有一段時間了,現在差距應該有所縮小),相比之下IronPython的性能簡直可以用十分優異來形容了。當然腳本語言也有一個不足的地方,就是加載解釋器的時候會帶來幾秒鐘的固定開銷,頻繁修改程序的時候,這幾秒鐘還是有點讓人難受的。好在以嵌入方式使用IronPython的時候,引擎只需要加載一次就夠了,所以這個缺點大體上還是可以接受的。

【編輯推薦】

  1. C#中使用位運算來實現權限管理
  2. 淺談C#如何實現多繼承
  3. 淺談C#基元類型及常見問題解答
  4. C#語言與Java語言程序的比較
  5. 利用C#指針進行圖像操作
責任編輯:彭凡 來源: cnblogs
相關推薦

2010-04-27 18:54:06

AIX語言

2025-03-17 03:00:00

C#性能并行處理

2009-08-17 16:34:21

.NET分布式緩存Memcached

2009-08-28 17:18:55

foreach循環

2009-04-28 10:23:58

VB.NETC#對比

2009-09-07 10:37:32

C#執行Finaliz

2023-05-10 08:29:12

2018-08-02 16:17:34

Python 開發編程語言

2009-08-18 14:14:45

C#擴展方法性能測試

2009-08-27 16:11:03

C# delegateC# event

2009-08-13 17:04:09

C#語言C#程序

2022-02-09 07:13:52

C盤爆滿存儲文件硬盤

2011-07-04 10:19:41

索引ONLINE

2009-08-17 10:54:53

C#執行ping命令

2009-08-06 09:32:03

C#代碼協同執行

2009-08-11 09:10:26

Windows 7系統提速

2009-10-15 09:32:39

什么是IronPythPython.NET

2009-09-07 15:21:38

Java與C#事件處理

2009-08-26 10:34:15

C#類型C#變量
點贊
收藏

51CTO技術棧公眾號

欧美精品久久久久久久久久丰满| 久久久久久久毛片| 国产一区二区欧美日韩| 能在线观看的av| 黄色美女一级片| 99在线热播精品免费99热| 日韩av在线不卡| 国产裸体舞一区二区三区| 男女污污视频在线观看| 奇米影视在线99精品| 在线日韩第一页| 亚洲五月激情网| 超碰97免费在线| 久久久久久久久久久久久久久99| 国产精品你懂得| 69av视频在线| 亚洲人成网www| 欧美日韩一区视频| 91亚洲精品国产| 欧美日韩免费做爰大片| 精东粉嫩av免费一区二区三区| 精品中文字幕在线2019| 亚洲激情 欧美| 免费污视频在线一区| 亚洲三级电影全部在线观看高清| 国产精品综合久久久久久| 国产69精品久久久久久久久久| 亚洲伊人春色| 欧美一区二区在线看| 日本中文字幕网址| 尤物在线视频| 91在线观看污| 亚洲a级在线观看| 无码人妻av免费一区二区三区| 欧美激情电影| 日韩av资源在线播放| 亚洲 国产 图片| 亚洲精品福利电影| 伊人夜夜躁av伊人久久| 欧美少妇一区| 丰满熟妇人妻中文字幕| 美腿丝袜一区二区三区| 性色av一区二区三区在线观看| 大胸美女被爆操| 高清国产一区二区三区四区五区| 色综合久久久网| 日本男女交配视频| 国产黄网站在线观看| 国产福利视频一区二区三区| 国产精品久久久av| 日产精品久久久| 激情六月综合| 欧美精品在线网站| 日韩欧美视频免费观看| 国产99亚洲| 亚洲福利影片在线| 国产精品99久久久精品无码| 久久av日韩| 在线观看91视频| 日韩avxxx| 136福利第一导航国产在线| 亚洲人被黑人高潮完整版| 日韩国产美国| 久久久久久女乱国产| 99这里只有精品| 成人免费观看网站| 中文字幕91爱爱| 日韩电影一区二区三区四区| 欧美整片在线观看| 日韩电影免费观看高清完整| 日韩少妇内射免费播放18禁裸乳| 激情av在线| 伊人婷婷欧美激情| 99re6这里有精品热视频| fc2在线中文字幕| 欧美国产日本视频| 五月天丁香综合久久国产 | 日本黄在线观看| 久久av资源网| 成人黄色av免费在线观看| 怡春院在线视频| 极品美女销魂一区二区三区| 国产日韩亚洲欧美| 国产区精品在线| 国产精品亚洲人在线观看| 成人免费大片黄在线播放| 波多野结衣家庭主妇| 日日摸夜夜添夜夜添亚洲女人| 欧美做受高潮电影o| 无码aⅴ精品一区二区三区| 日韩精品久久久久久| 国产欧亚日韩视频| 97久久人国产精品婷婷| 国产乱子伦视频一区二区三区| 亚洲一区二区三区xxx视频| av片免费播放| 蜜臀av性久久久久蜜臀av麻豆| 国产精品视频xxx| 国产精品国产精品国产专区| 激情五月播播久久久精品| 91色p视频在线| 午夜精品一区二区三| 成人久久久精品乱码一区二区三区 | 6080午夜不卡| 久久精品无码专区| 婷婷成人影院| 在线播放国产一区中文字幕剧情欧美 | 国产一区二区三区的电影| 97激碰免费视频| 日韩精品在线一区二区三区| 国产在线精品一区在线观看麻豆| 精品999在线观看| 国产网站在线播放| 亚洲精品免费视频| 中文字幕无码精品亚洲35| 在线观看涩涩| 日本美女视频一区二区| 福利视频在线导航| 国产精品111| 欧美激情在线精品一区二区三区| 伊人激情综合网| 国产美女福利视频| 国产精品女主播一区二区三区 | 国产区在线看| 欧美性高潮在线| 天天色天天综合网| 欧美男gay| 在线观看欧美视频| 日韩免费观看一区二区| 久久精品99久久久| 久久手机视频| 欧洲一区二区三区| 欧美三级视频在线观看| 动漫美女无遮挡免费| 国内毛片久久| 久久色在线播放| 国产91精品看黄网站在线观看| 国产成人在线免费观看| 亚洲精品9999| 亚洲风情在线资源| 亚洲国产精品系列| 深夜福利影院在线观看| 蜜乳av一区二区三区| 蜜桃999成人看片在线观看| 超碰超碰在线| 欧美日韩精品欧美日韩精品| 国产精品815.cc红桃| 亚洲激情自拍| 97久久天天综合色天天综合色hd| 91最新在线| 日本福利一区二区| www.色天使| 国产精品久久久久9999高清| 都市激情久久久久久久久久久| 亚洲免费视频一区二区三区| 日韩欧美在线免费| 久久人人妻人人人人妻性色av| 综合视频在线| 成人精品一区二区三区电影黑人| 成年人视频在线观看免费| 高潮白浆女日韩av免费看| 亚洲精品成人在线播放| 欧洲激情综合| 国产精品久久久av| 色av男人的天堂免费在线| 亚洲国产精品久久久久秋霞影院 | 成人性生交大片免费看无遮挡aⅴ| 亚洲免费影院| 国产精品果冻传媒潘| 深夜国产在线播放| 日韩一区二区免费在线观看| 91视频最新网址| 激情综合色丁香一区二区| 国产高清免费在线| 四虎在线精品| 久久精品人人爽| 国产特级黄色片| 一区二区三区在线免费播放| 欧美国产日韩在线视频| 永久91嫩草亚洲精品人人| 91亚洲精品视频| 91小视频xxxx网站在线| 欧美v国产在线一区二区三区| 超碰手机在线观看| jizz一区二区| 欧美一区二区三区在线观看| 亚洲国产精品三区| 久久免费大视频| 91精品视频大全| 欧美性爽视频| 亚洲码在线观看| 伊人影院中文字幕| 亚洲一区二区三区四区在线免费观看| 中文字幕天堂av| 欧美岛国激情| 成人在线看片| 免费日韩电影| 久久资源免费视频| 日本高清视频网站| 在线欧美一区二区| www.av免费| 99精品国产99久久久久久白柏| 国产a级片免费观看| 国产精品密蕾丝视频下载| 国产精品小说在线| 激情网站在线| 国产亚洲欧美日韩美女| 国产乱叫456在线| 午夜久久久影院| 丁香六月激情综合| 成人精品视频一区二区三区尤物| 美女福利视频在线| 婷婷久久一区| 久久天天狠狠| 国产亚洲字幕| 欧美在线一区二区视频| 黄色动漫在线| 亚洲国产精品成人av| 日韩xxx视频| 亚洲夂夂婷婷色拍ww47| 色偷偷男人天堂| 久久久噜噜噜久噜久久综合| www.美色吧.com| 国产一区二区看久久| 久久久国产欧美| 校园激情久久| 美女扒开大腿让男人桶| 亚洲电影影音先锋| 先锋影音日韩| 国产欧美日韩精品一区二区三区| 激情小说综合区| 国产劲爆久久| 国产精品美女诱惑| 一区二区亚洲视频| 91在线观看免费| 免费一级欧美在线观看视频| 国产精品福利在线| 三级成人黄色影院| 2019中文字幕免费视频| 97人澡人人添人人爽欧美| 精品中文字幕乱| 欧美亚洲天堂| 欧美肥婆姓交大片| 羞羞视频在线免费国产| 欧美大片va欧美在线播放| 麻豆视频在线免费观看| 中文字幕亚洲图片| 色网站免费在线观看| 中文字幕无线精品亚洲乱码一区 | 中文字幕亚洲乱码熟女1区2区| 亚洲国产一区二区三区| 久久精品国产亚洲av高清色欲| 亚洲一区在线观看免费观看电影高清| 久久久久香蕉视频| 亚洲精品乱码久久久久久黑人 | av影片在线一区| 日韩视频在线观看国产| 日本久久黄色| 欧美性受xxxx黑人猛交88| 欧美成人日本| 黄网站欧美内射| 久久不射中文字幕| 91网址在线播放| 久久成人久久鬼色| 丰满少妇一区二区三区专区 | 欧美视频一区二| 国产一区二区在线播放视频| 日韩亚洲欧美成人一区| 高清乱码毛片入口| 亚洲精品456在线播放狼人| 午夜影院在线视频| 国产一区二区三区三区在线观看 | 日韩一区在线播放| 国产va在线播放| 免费看电影在线| 中文字幕视频在线免费欧美日韩综合在线看 | 亚洲欧美日本精品| 一本一道波多野毛片中文在线 | 免费在线观看一级片| 亚洲尤物在线视频观看| 亚洲男人第一av| 欧美日韩亚洲综合一区| 亚洲国产成人精品一区二区三区| 亚洲国产一区二区三区四区 | 久久国产精品久久国产精品| 日韩免费影院| 国产成人免费91av在线| 国产精品视频首页| 精品中文字幕一区| 国产精品一线天粉嫩av| 日韩人妻精品一区二区三区| 亚洲国产精品第一区二区三区| 无码无遮挡又大又爽又黄的视频| 精品一区二区三区欧美| 一级国产黄色片| 亚洲色图视频网| 国产午夜精品久久久久| 日韩一区二区三区精品视频| 日本国产在线| 欧美精品激情在线| 开心久久婷婷综合中文字幕| 国产精品日韩二区| 色综合久久一区二区三区| 免费超爽大片黄| 久久99国产精品麻豆| 喷水视频在线观看| 亚洲视频一二三区| 天天射天天干天天| 精品国产99国产精品| 在线视频91p| 91sa在线看| 亚洲亚洲一区二区三区| 亚洲第一综合| 久久久久久色| 精品1卡二卡三卡四卡老狼| 国产精品嫩草影院com| 在线能看的av| 精品国产乱码久久久久久久久| 3p在线观看| 国产精品91免费在线| 国内精品麻豆美女在线播放视频| 亚洲免费视频播放| 日韩vs国产vs欧美| 日本高清www| 亚洲午夜激情网站| 国产jzjzjz丝袜老师水多 | 国产精品久久国产精品| 国产精品国产一区| 校园春色 亚洲色图| 国产网红主播福利一区二区| 国产 欧美 日韩 在线| 日韩三级高清在线| 欧美三级黄网| 国产女精品视频网站免费| 激情五月色综合国产精品| 国产伦精品一区二区三区四区视频_| 国产在线精品一区在线观看麻豆| 日韩欧美在线视频播放| 欧美色图在线观看| 搞黄视频免费在线观看| 国产aⅴ夜夜欢一区二区三区| 亚洲大片精品免费| 国产特级淫片高清视频| eeuss鲁片一区二区三区在线观看| 久久精品99久久久久久| 日韩欧美国产综合一区| 日本高清中文字幕在线| 国产日韩精品电影| 希岛爱理一区二区三区| 伊人精品视频在线观看| 一区二区三区色| 亚洲免费成人在线| 午夜精品三级视频福利| 欧美美女黄色| 激情婷婷综合网| 欧美韩国一区二区| 一二区在线观看| 蜜臀久久99精品久久久久久宅男 | 草莓视频丝瓜在线观看丝瓜18| 国产精品日本一区二区| 亚洲综合三区| 天天舔天天操天天干| 7777精品伊人久久久大香线蕉经典版下载 | 欧美性猛交内射兽交老熟妇| 懂色av噜噜一区二区三区av| 伊人国产在线观看| 亚洲男人天堂网| 日韩成人在线电影| 成人在线免费观看网址| 成人免费看的视频| 中文字幕在线看人| 最近2019年日本中文免费字幕| 国产成人久久精品一区二区三区| 狠狠干视频网站| 99riav久久精品riav| 色一情一乱一伦一区二区三区丨 | 欧美日韩蜜桃| 日韩免费高清一区二区| 日本久久一区二区| 黄网站免费在线观看| 国产伦精品一区| 人人精品人人爱| 九九久久免费视频| 日韩精品在线视频| 天堂久久一区| 欧美二区在线视频| 中文字幕一区二区三区四区不卡| 性中国xxx极品hd| 日韩美女在线观看| 永久91嫩草亚洲精品人人| aaaaa一级片| 91麻豆精品国产无毒不卡在线观看| 久久五月精品中文字幕| 日本不卡二区| 成人小视频免费观看| 中文字幕永久免费视频| 久久免费视频在线观看| 欧洲grand老妇人| a天堂视频在线观看| 在线播放一区二区三区|