Computer Language Benchmarking by Implementation

The Computer Language Benchmarks Game ( http://shootout.alioth.debian.org/ ) 網站上提供了由大約 18 個 benchmarks, 由對於大約 34 種 programming languages 的 implementation 作 benchmarking 的結果. 並提供方便的統計或比較觀點查看結果. 他們的計畫網頁可以在 Alioth GForge 找到 : Shootout@Alioth-GForge

例如 Java 6 -server 對 Python 的比較結果 : ( 這兩者在 CPU Time 跟 Memory Usage 上的差異還真是明顯 )

或是可以對於不同的 benchmarks 給予不同的 weights, 進而調整 benchmarking 的結果.


不過當然, 這些 benchmarking 只能反應這些 programming languages 之間比較的小部份面向而已, 就軟體工程的角度而言, 選擇 programming languages 時要考慮的 factors 比這裡所能呈現的多太多了.

但是從這點出發, 是否未來有一天, 我們也可以靠著在這樣的網頁上, 選取跟目前進行中的 project 相關的 benchmarks, 以及要衡量的 factors, 就決定要利用哪種 programming language 進行開發呢 ? 例如上面的 benchmark 中, 包含了許多基本的 data structure 以及 algorithms 作為 benchmarks, 如果這些 benchmarks 可以組合起來, 提供更為 high-level 的 evaluation benchmark, 同時加上不同的 programming languages 在 architectural components 上得 benchmarks, 那麼我們可能就可以找到更多在軟體工程中可以被利用的 benchmarks, 進而更容易決定 programming languages 的選擇.

2 意見:

jserv 提到...

Nice!

我以前作 codec 的時候,就花了一段時間,透過 GNU Plot 弄了自動 check out from SVN repository & build,然後以內建的 benchmark framework 輸出資料並建立視覺圖表,輔助評估不同的優化演算法與平台特性微調。

「工欲善其事,必先利其器」

seLain 提到...

學長總是一貫地相當有行動力 :)

有點好奇在學長建立的 tool 中, 在 benchmarking 的結果跟後續的 codec 微調之間, 是靠 programmer 的判斷來作調整嗎 ? 或是在 benchmarking 結果跟可能進行的調整之間, 可以整理出一些 patterns ?

Designed by Posicionamiento Web | Modified by seLain | Bloggerized by GosuBlogger | Blue Business Blogger