精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧洲性xxxx| 黑森林福利视频导航| www男人的天堂| 亚洲久久成人| 国产香蕉97碰碰久久人人| 丁香婷婷激情网| 毛片在线视频| 91亚洲大成网污www| 国产精品视频在线观看| 国产在线观看99| 精品国产成人| 精品不卡在线视频| 日日干夜夜操s8| 51漫画成人app入口| 国产精品网站在线| 久久久久久久久久久一区| 中文字幕久久熟女蜜桃| 韩国一区二区三区在线观看| 亚洲视频欧美视频| 国产午夜在线一区二区三区| 亚洲精品aaa| 欧美性猛交xxxx乱大交蜜桃| 7777在线视频| 黄色网址在线播放| 成人精品在线视频观看| 国产欧美一区二区三区视频 | 国产精品久久久久影视| 国产精品福利视频| 国产精品国产av| 久久综合影视| 45www国产精品网站| 免费人成年激情视频在线观看| 欧美日韩国产高清电影| 亚洲另类欧美自拍| 88av在线播放| 高清精品xnxxcom| 日韩女优制服丝袜电影| 一道本在线免费视频| 欧美日韩123区| 精品国产31久久久久久| 日韩欧美精品免费| av毛片在线播放| 亚洲四区在线观看| 亚洲一区二区三区免费看| 青青视频在线观| 91丨porny丨户外露出| 国产精品视频免费一区二区三区| www.麻豆av| 国产精品12区| av色综合网| 亚洲国产精彩视频| 高清shemale亚洲人妖| 91蜜桃网站免费观看| 99国产精品99| 国产成人免费视频网站| 成人在线资源网址| 亚洲大尺度视频| 成人免费高清视频在线观看| 国产精成人品localhost| www视频在线| 不卡电影免费在线播放一区| 国产亚洲自拍偷拍| 搡老岳熟女国产熟妇| 91在线小视频| 免费在线观看一区二区| 国模精品一区二区| 国产精品免费久久| 天天做天天爱天天高潮| 少妇网站在线观看| 亚洲一区二区激情| 狠狠色综合日日| 91精品综合久久久久久五月天| 国产一区二区麻豆| 国产精品77777| 黄色一区三区| 国产成人天天5g影院在线观看| 国产三级一区二区| 熟妇熟女乱妇乱女网站| 久草免费在线色站| 日韩欧美中文字幕在线观看| 精品久久久久久久无码| 黄色成人小视频| 欧美成人乱码一区二区三区| jlzzjizz在线播放观看| 国产亚洲欧美日韩在线观看一区二区 | 性日韩欧美在线视频| 日韩欧美成人一区二区三区| 日韩电影在线一区二区| 91在线|亚洲| 视频在线不卡| 中文字幕中文字幕一区| 九九热只有这里有精品| 香蕉成人影院| 精品黑人一区二区三区久久 | 色婷婷.com| 成人三级av在线| 亚洲人成人99网站| 欧美精品乱码视频一二专区| 亚洲主播在线| 97se在线视频| seseavlu视频在线| 亚洲国产精品尤物yw在线观看| 日韩精品免费播放| 91免费精品国偷自产在线在线| 亚洲视频在线观看视频| 538精品在线视频| 日韩激情中文字幕| 国产毛片一区二区| 97视频在线观看视频免费视频| 国产一卡二卡三卡| 白白色亚洲国产精品| 在线观看日韩羞羞视频| 亚洲十八**毛片| 欧美xfplay| 国产麻豆a毛片| 久久久国产精品一区二区中文| 亚洲一区亚洲二区| 69久久久久| 色拍拍在线精品视频8848| 最新版天堂资源在线| 91亚洲成人| 国产精品福利在线观看网址| 神马午夜一区二区| 一片黄亚洲嫩模| 亚洲一区精品视频在线观看| 国产成人调教视频在线观看| 久久久久久亚洲| 亚洲av无码专区在线| 日韩一区在线看| 午夜视频你懂的| 秋霞影院一区二区三区| 欧美激情中文字幕乱码免费| 国产丝袜在线视频| 国产精品久久看| www.亚洲高清| 欧美精品一区二区三区精品| 日韩美女写真福利在线观看| 天天干天天操av| 午夜电影一区二区| 香蕉视频污视频| 欧美视频在线观看| 99在线视频播放| 伊人精品影院| 日韩一区二区精品| 欧美人与禽zozzo禽性配| 久久69国产一区二区蜜臀| 亚洲一区二区三区免费看| 电影一区电影二区| 日韩中文综合网| 亚洲自拍偷拍另类| 综合色天天鬼久久鬼色| 91精产国品一二三产区别沈先生| 天天射天天综合网| 亚洲最大的免费| 在线观看午夜av| 精品久久久久久亚洲综合网| 久久久精品人妻一区二区三区四| 国产精品一区在线观看乱码 | 精品久久久久久中文字幕人妻最新| 亚洲精品美女| 久久久7777| 欧美色网在线| 久久激情五月丁香伊人| av一级黄色片| 午夜日韩在线电影| 蜜桃av免费看| 麻豆极品一区二区三区| 欧美一级黄色录像片| 亚洲精品一区在线| 国外成人在线视频| 久久免费看视频| 欧美日韩国产精品成人| 免费看一级一片| www国产精品av| 91网址在线播放| 亚洲午夜精品一区二区国产| 国产99在线免费| 韩国成人动漫| 精品久久久av| 污污的视频网站在线观看| 在线影视一区二区三区| 看免费黄色录像| 91亚洲永久精品| 小明看看成人免费视频| 亚洲高清资源| 亚洲一区高清| 狼人精品一区二区三区在线| 国产精品国产福利国产秒拍| av片在线观看网站| 亚洲免费av网址| www.色视频| 色偷偷一区二区三区| 中文字幕人妻一区二| 99精品视频中文字幕| 日韩在线一区视频| 亚洲欧美日韩视频二区| 青青草影院在线观看| 亚洲黄色录像| www.成人av.com| 97精品国产综合久久久动漫日韩 | 日韩区国产区| 福利在线一区| 成人h片在线播放免费网站| 黄频免费在线观看| 久色乳综合思思在线视频| 五月婷婷六月激情| 这里只有精品免费| 亚洲日本韩国在线| 尤物av一区二区| 综合 欧美 亚洲日本| 99精品国产99久久久久久白柏| 红桃视频 国产| 日韩精品国产精品| 91九色在线观看视频| 中国精品18videos性欧美| 日韩av不卡在线播放| 蜜臀av一区| av一区二区三区四区电影| 国产精品黄色片| 日韩免费观看高清| 免费高潮视频95在线观看网站| 久久在精品线影院精品国产| yjizz视频网站在线播放| 亚洲国产精品成人va在线观看| 国产熟女一区二区三区五月婷| 欧美在线不卡一区| 五月婷婷激情视频| 精品女厕一区二区三区| 精品亚洲永久免费| 亚洲综合色成人| 免费人成在线观看| 一区二区在线观看免费| 手机av在线看| 亚洲欧美一区二区视频| 91av手机在线| 中文字幕亚洲综合久久菠萝蜜| 亚洲一级黄色录像| 中文无字幕一区二区三区| 欧美黄色一级生活片| 国产午夜精品久久久久久免费视| 极品粉嫩小仙女高潮喷水久久 | 国产精品免费无码| 久久久亚洲综合| 自拍偷拍亚洲天堂| 国产清纯白嫩初高生在线观看91| 无码人妻aⅴ一区二区三区| 91老师国产黑色丝袜在线| 少妇精品一区二区| 久久美女艺术照精彩视频福利播放 | www.av亚洲| 亚洲观看黄色网| 久久久国产综合精品女国产盗摄| 魔女鞋交玉足榨精调教| 国产日产精品一区| 在线看片中文字幕| 亚洲图片你懂的| 欧美精品xxxxx| 黄色成人av在线| 91午夜精品亚洲一区二区三区| 日韩欧美视频一区二区三区| 樱花视频在线免费观看| 欧美日韩国产片| 精品国产av 无码一区二区三区| 日韩一区二区在线看片| 欧美 日韩 国产 在线| 日韩精品免费视频| 97人人在线| 欧美成人高清视频| 欧美sm一区| 国产精品久久久久高潮| 白嫩亚洲一区二区三区| 成人高清在线观看| 免费观看不卡av| 成人手机视频在线| 伊人久久亚洲热| 国产精品99久久免费黑人人妻| 美国av一区二区| 黄色激情在线观看| 国产欧美一区二区精品忘忧草 | 国产永久av在线| 久久久精品在线| 成人三级高清视频在线看| 国产精品极品美女在线观看免费 | 国产精品国产三级国产普通话三级| 在线观看日本中文字幕| 中文字幕在线不卡一区二区三区 | 中文字幕亚洲综合久久五月天色无吗'' | 日本中文字幕在线视频| 欧美另类极品videosbestfree| 国产99re66在线视频| 国产成人久久久精品一区| 久久精品一级| 日本一区免费观看| 欧美在线看片| 国产裸体免费无遮挡| 国产成人综合亚洲网站| 摸摸摸bbb毛毛毛片| 亚洲一级二级在线| 在线观看国产精品视频| 亚洲精品成人免费| 大片免费在线观看| 欧美最近摘花xxxx摘花| 日韩在线网址| 亚洲精品一区二区三| 99精品久久久| 色偷偷中文字幕| 国产欧美精品区一区二区三区 | 精品欧美国产一区二区三区不卡| 999久久久国产精品| 97在线播放视频| 成人中文字幕合集| 麻豆精品国产免费| 色哟哟一区二区三区| 蜜桃视频在线观看www| 久久久精品在线| 国产亚洲人成a在线v网站| 蜜桃91精品入口| 亚洲黄色视屏| 无码国产精品久久一区免费| 国产精品美女视频| 亚洲黄网在线观看| 亚洲黄色www| 国产探花视频在线观看| 亚洲bt欧美bt日本bt| 欧美激情777| 天堂一区在线观看| 亚洲国产激情av| 99re国产在线| 亚洲午夜未删减在线观看| 狼人综合视频| 国产精品久久久久免费| 欧美婷婷在线| 免费黄视频在线观看| 亚洲精品成人a在线观看| 91久久国语露脸精品国产高跟| 在线播放亚洲激情| 欧美影视资讯| 亚洲mv在线看| 另类的小说在线视频另类成人小视频在线 | 国产九色91回来了| 国产亚洲成av人片在线观看桃| 三上悠亚国产精品一区二区三区| 精品视频一区在线| 国产亚洲精品bv在线观看| 人妻无码中文久久久久专区| 亚洲成av人片在www色猫咪| 天堂在线观看av| 91av在线不卡| 红桃视频在线观看一区二区| 亚洲高清在线免费观看| 中文字幕国产一区| 国产女人爽到高潮a毛片| 久久国产精品久久久久久久久久| 久久伊人影院| 黄色国产一级视频| 2020国产精品久久精品美国| www.色国产| 久久精品国产电影| 我要色综合中文字幕| 日韩网站在线免费观看| 91影院在线观看| 波多野结衣视频在线观看| 日韩日本欧美亚洲| 136国产福利精品导航网址应用| cao在线观看| 久久先锋资源网| 影音先锋国产资源| 久久97久久97精品免视看| 国产精品qvod| 成人性做爰aaa片免费看不忠| 国产精品日韩精品欧美在线| jlzzjlzzjlzz亚洲人| 91精品国产91久久久久久不卡| 国产精品密蕾丝视频下载| 中文字幕 日韩 欧美| 亚洲成在线观看| 国产三级在线观看| 91人成网站www| 国产一级久久| 国产精品麻豆一区| 亚洲大胆美女视频| 成人在线高清| 大伊香蕉精品视频在线| 国产午夜精品一区二区三区视频| 精品国自产拍在线观看| 欧美诱惑福利视频| 91精品秘密在线观看| 三级黄色片网站| 日韩视频在线永久播放| 手机在线观看av| 91精品国产毛片武则天| 久久色成人在线| www.亚洲欧美| 国产精品一区二区三区久久久| 亚洲精品二区三区| 亚洲天堂久久新| 欧美精品一区二区久久久| 麻豆久久久久| 亚洲精品中文字幕无码蜜桃| 一二三区精品福利视频|