單聲道性能
回答
從米格爾這裏有一個有趣的帖子。
「阿爾瓦羅指出,在 語言槍戰基準單在第18位相比,Java的第10 所至 。
我們知道,Sun的專有的Java 版(不開源之一, 那個還沒有找到) 比單聲道快,但我是 感到驚訝,我們遠遠落在了後面 所以我看了看Java6和Mono的 之間的比較。
Comparison - Java and Mono http://tirania.org/pictures/javavsmono.png
該圖表過時了!這裏有4個當前的基準遊戲比較之一 - http://benchmarksgame.alioth.debian.org/u32/csharp.php – igouy 2013-05-17 14:08:01
我的基準測試(使用複雜的數學問題和存儲器操作(與原始字符串)):
的MonoDevelop的Windows(使用.net 3.5控制檯上運行): RealizandocálculosEM 1.000.000 itens ... 535 RealizandooperaçõesCOM串longas ... 2.038 RealizandocálculosEM 1.000.000 itens ... 530個 RealizandooperaçõesCOM串longas ... 1.962 RealizandocálculosEM 1.000.000 itens ... 530個 RealizandooperaçõesCOM串longas。 .. 1.963
在Windows上使用mono.exe: RealizandocálculosEM 1.000.000 itens ... 6.875 RealizandooperaçõesCOM串longas ... 6.206 RealizandocálculosEM 1.000.000 itens ... 6.840 RealizandooperaçõesCOM串longas .. 。6.114 RealizandocálculosEM 1.000.000 itens ... 6.857 RealizandooperaçõesCOM串longas ... 6.116
在Linux操作系統Ubuntu使用單: RealizandocálculosEM 1.000.000 itens ... 5,934 RealizandooperaçõesCOM字符串longas ... 6,915 Realizandocálculosem 1.000。000項目...... 6034個 長字符串執行操作... 7489項 進行計算百萬個... 5,740 長字符串執行操作... 6731
相同的源代碼,但在Visual Studio中2008年: 進行計算,百萬個...... 588個 長字符串執行操作... 1289項 執行計算百萬個...... 566個 長字符串執行操作... 1320個 執行計算百萬個...... 702個 長字符串執行操作... 1393
年VS產生與NGEN(本地可執行文件)EXE: 進行計算,百萬個...... 567個 長字符串執行操作... 1255項 執行計算百萬個...... 563個 執行操作與長串 ... 1269項執行計算百萬項562 ...通過用長串
...在那些測試1263執行操作,單是慢10倍的.NET 3.5 SP 1 =(
C++,C#(單聲道),和C VALA:
http://jpaflacerda.wordpress.com/2011/11/08/vala-benchmarking/許多語言:http://attractivechaos.github.com/plb/
結論:單聲道進化了很多,但它仍然是緩慢的,與其它可用的語言相比。我在護城河了濃厚的興趣,這幾乎是C#的語法相同,但比在某些情況下,純C更快。
這個槍戰的最新版本可以發現here。
概括地說,相比於Java,單佔用更少的內存,運行速度稍慢。
要保持角度來看問題,無論它們運行有關的事物的宏偉計劃相同的速度。他們這兩個測試不是像紅寶石,LUA,Python和PHP和Perl語言運行快幾個數量級。無論他們是在球的公園一樣帕斯卡爾,OCAML,哈斯克爾,Lisp和大約一半的人這使得快,C和C++。 here點擊瞭解更多詳情。
雞蛋裏挑骨頭,cornichons明確闕在這裏我們的答案比較的Java和Mono C#。無論是單聲道和JVM環境中通過不同的語言和語言問題的選擇目標。舉例來說,如果我們單上使用Clojure在JVM上比較F#我們得到完全不同的結果,突然「單聲道」是「faster」。
雖然這些比較有趣和翔實的,你必須把它們用一粒鹽。首先,儘管一些人,大多數人寫Java和C#代碼不是在緊密循環運行什麼,但數值算法。其次,在一些語言,測試的算法可能只是調用到闕是用C語言編寫,而不是在目標語言的所有庫。最後,其他基準(和實現)可能會產生不同的結果。
不過,這是合理的推斷,走的是比Ruby更快,C++是不是走得更快,而Java和C#漂亮的執行合理的假設它們是如何生產(恕我直言)
大部分的基準是基於緊密循環的重計算。時間剛剛開始循環之前計數,只是後停止。如果您的應用程序正在執行大量數據處理,那麼避免使用C#和Java,只需使用C/C++即可。
它更可能是您的應用程序將服務器端。它將不得不接受查詢,獲取數據並將其發回。在這種情況下,生成的代碼的原始速度與其他參數相比無關緊要。
你最好看看底層框架的效率如何,初始化階段在執行代碼之前有多快,實現高效技術(如非阻塞I/O),內存釋放性能並在代碼執行後處理回收。部署代碼有多容易,使其擴大規模......
人類參數比所有這些都重要。寫得不好的Java比C#慢,反之亦然。所以你必須檢查你的開發人員。他們掌握了多大的語言,他們喜歡更好的工具嗎?他們是VS/resharper上癮者還是可以使用Java IDE?花在學習新語言或IDE上的時間不會花在編寫更好,更優化的代碼上。
- 1. C#性能MS verse單聲道問題
- 2. 單聲道,c#,套接字,性能
- 3. 單聲道功能完成
- 4. 單聲道和.NET DLL互換性
- 5. 使用CodeFluent.Runtime.Client的單聲道兼容性
- 6. WCF擴展性 - IInstanceProvider單聲道
- 7. 單聲道aspnet_compiler
- 8. 單聲道LdapException
- 9. 單聲道
- 10. 單聲道PdfSharp
- 11. 單聲道HttpContext.GetService
- 12. 在Android上使用單聲道Android 1.5的可能性
- 13. 單聲道垃圾回收最差情況下的性能
- 14. ASP.NET在單聲道(Linux)和IIS(窗口)中的性能
- 15. QueueUserWorkItem()使用單聲道C#的性能問題#
- 16. 單聲道多聲道播放器
- 17. AVPlayer播放單聲道音頻立體聲 - >單聲道
- 18. 單聲道消除尾聲
- 19. SuperCollider:從多聲道文件的單個聲道加載單聲道緩衝區
- 20. 單聲道到Emscripten
- 21. Python,IronPython單聲道
- 22. 單聲道3.0.6 - System.IO.FileNotFoundException
- 23. 單聲道和IHttpHandler
- 24. Linux Ubuntu單聲道
- 25. Sqlite單聲道upsert
- 26. 單聲道導航
- 27. 單聲道要求
- 28. 單聲道聯網
- 29. 混淆單聲道?
- 30. 單聲道FormBorderStyle =無
有人願意重新訪問這個,現在C#4.0出來了嗎? – user482594 2011-10-29 00:28:23
@ user482594 - 我在我的答案中提供了一個最新的鏈接,該鏈接應該保持最新狀態:http://stackoverflow.com/a/9138207/332026 – Justin 2012-02-04 03:40:36
@ user482594 - 基準遊戲不會顯示Mono 2.10.9,提供C#4.0 - 但這並不意味着C#程序已被重新編寫爲使用C#4.0功能。 – igouy 2012-09-28 19:35:05