自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

編程語言的評測 性能和靈活性的最佳平衡

開發(fā) 開發(fā)工具
結(jié)合計算機語言評測基準這個網(wǎng)站來讀此文還是比較有意思。當然也不能以這個評測結(jié)果就貿(mào)然斷定什么語言最好,什么語言不好。沒有好不好的語言,只有適不適用于你解決問題域的語言。就文章而言請大家還是不必太過認真,就當從另一個方面來了解一下這33種編程語言吧。

在計算機評測基準中,評測者為了盡量讓評測準確,非常謹慎的選擇了13個基準程序,這13個基準程序并不針對某以特定語言有特殊的優(yōu)化。對于評測選擇33中語言都實現(xiàn)了13個基準程序。當然,除了速度這個指標外,程序基準評測同時也為每一個基準測試程序發(fā)布一個編碼大小指標。非常感謝基準評測讓我們看到程序設計中非常重要的一個方面:程序語言的性能和程序語言靈活性之間的矛盾。正是這個矛盾給所謂“高級編程語言”帶上一個含蓄的輕蔑的意思。即,當你在使用這些高級語言編碼時,你也許可以編寫出漂亮的代碼,但是你是如此的遠離了硬件,你不可能獲得更好的性能,是這樣的嗎?

基準測試XY圖表

如果我們將基準測試程序的結(jié)果放在一張XY的圖表上,那么我們就可以為這張表的4個角命名。快速而復雜的語言應積聚在圖表的左上角。我們把這類語言稱為系統(tǒng)語言。簡潔但慢速的語言應該聚集在右下角,我們稱之為腳本語言。在右上角,應該是過時的語言。除非這些語言具有非常吸引人的特性,否則語言已經(jīng)被新出現(xiàn)的語言所淘汰。***在左下角,基本上找不到對應的語言,因為在這一區(qū)域的語言是理想狀態(tài)的語言。在這個區(qū)域的語言是又快又短又利于使用的語言。

圖中每一個小點就代表一種語言的一個基準程序?qū)崿F(xiàn),因此這圖里面共有429個點,每個點的XY軸分別代表了其和***的語言實現(xiàn)差距的倍數(shù)(從語言的復雜性和語言執(zhí)行性能來說),其中一些點比較分散,我們就沒有在圖中畫出。從上面這個圖我們可以看到這些粉紅色點沿著Y軸(復雜性)比X軸(執(zhí)行性能)分布更統(tǒng)一,這是不是意味著,人類在提升語言表達的靈活性上還在穩(wěn)步的不斷進步,而在提升語言性能方面卻遇到了很多的麻煩呢:)

針對每一個種語言,比如說scala語言,我們用下面的圖來描述:圖的中心點,是這個語言測試結(jié)果的平均值,然后做每一個評測結(jié)果的具體值到這個均值的連線就夠成了一個星型圖。這個圖說明了scala一些特性,在X軸性能上來說,大部分點都分布在靠近左邊,說明scala的性能是不錯的,如果優(yōu)化JVM的話,scala可以大部分提高性能,但是scala性能分布并不一致,其中的一個點甚至到了最右邊。就語言復雜性(Y軸)來說,scala的表現(xiàn)也不錯,不過有時候為了獲得高性能,也會導致語言復雜提高,比如scala的其中一個點就在最頂端。(有關(guān)Scala語言的更多介紹,可參考Java以外的選擇 Scala編程語言簡介

Scala的測試結(jié)果

通過為每一種語言形成如上的一個圖,我們***可以為這33種語言評的測結(jié)果形成了如下的一個圖,這是一個6*6的圖。其中每一個小圖具有同樣的軸和同樣的精度。這張圖的目的是為了方便的比較每一個語言的星型。這些圖按語言的平均性能來組織列,最左邊的語言的性能***,最右邊的語言性能最差,在每一列中的語言又按照平均的語言代碼量(復雜程度)進行排列,代碼量最小的語言在***端,代碼量***的在最頂端。

全部語言測試結(jié)果

點擊看大圖

在圖的最左邊的性能是***的,又高又瘦的星型,我們可以看到,除了GCC和G++外,其他的性能都顯示了驚人的一致性(每一個基準測試程序的性能都非常接近)。而JAVA也非常驕傲的出現(xiàn)在一組中,這說明經(jīng)過了10年的優(yōu)化后,Java運行時的性能已經(jīng)得到長足的提高(要用Java做大系統(tǒng)的人是否還會猶豫呢:))。

在圖的右邊,我們看到了一些又胖又矮的星型,這些是一些腳本語言,從圖中可以看出,這些腳本語言社區(qū)的人們當他們在不斷改善他們語言的表達性的同時并沒有花大力氣在性能的改善上。然而也有例外,Lua這門腳本語言就有很好的執(zhí)行性能。

【編輯推薦】

  1. 5月編程語言排行榜:C++替代者風采不再
  2. 詳談學習編程語言的策略
  3. 程序員如何選擇合適的編程語言
  4. Java之外,選擇Scala還是Groovy?
  5. Java以外的選擇 Scala編程語言簡介
責任編輯:yangsai 來源: 酷殼
相關(guān)推薦

2010-02-23 17:04:32

Python編程語言

2022-10-10 18:39:01

legendapp前端框架

2015-12-31 09:44:56

公有云谷歌云評測

2014-05-08 13:31:43

移動安全協(xié)作系統(tǒng)

2010-01-12 15:33:26

CC++

2009-12-09 10:31:14

SOA質(zhì)量SOA靈活性

2024-01-22 09:00:00

編程C++代碼

2010-02-01 18:23:54

Python

2009-01-01 22:08:15

企業(yè)網(wǎng)絡提高

2012-03-07 15:22:02

2009-01-22 19:03:32

服務器虛擬化VMware

2024-05-15 08:54:04

C++類型限定符代碼

2013-02-26 10:44:26

2024-05-09 12:20:32

DellAPEX

2024-06-05 08:51:14

Python動態(tài)創(chuàng)建類工具

2009-08-25 16:11:12

Repeater控件

2010-07-20 09:18:48

云計算靈活性

2024-12-12 16:29:34

2016-11-08 13:50:57

2012-02-24 09:03:11

云計算虛擬化
點贊
收藏

51CTO技術(shù)棧公眾號