編譯型語言快
⑴ 同樣需要編譯器為什麼匯編語言比較快
絕大多數情況下,並不是。
事實上除了對CPU工作模式極端熟悉的人,一般人是很難用匯編寫出更高效的代碼的。
編譯器雖然智商比不了人,但是它更精通優化。生成高效的代碼需要透徹地掌握硬體的工作模式,每個細節都要考慮清楚。而且這很大程度上是軟體更擅長但人並不擅長的繁重無腦又要求極高精確性的機械化工作。
當然專業搞優化的人還是能打敗編譯器的,因為編譯器能做到的人終究還是可以做到。而人要比編譯器聰明得多。編譯器只能遵循一些規定好的模式進行優化,人可以創造編譯器根本不知道的優化方法。某些邏輯靠編譯器是沒辦法生成出來的,只能由人直接用匯編寫。匯編語言雖然也要編譯,但是一般會和機器指令直接對應,相當於要求CPU在細節上嚴格按人的思路工作,而高級語言並不能控制太多細節。
⑵ Lua到底有多快
但我還是對它的第三個優點最為在意。很多人都說Lua是目前世界上速度最快的腳本語言,那麼Lua到底有多快?沒有人拿出具體的數據來說明。沒有比較就沒有鑒別,所以我想親自測試一下。下面是在同一台機器上分別用6種語言執行1億次浮點運算的測試結果(1億以內的所有整數開3次方並求和),有圖為證:
測試說明:
1、一般來說,我們總是認為編譯型語言要比解釋型語言快,這裡面delphi和易語言屬於編譯型語言,而VB有人認為只是偽編譯而已,lua、vbs、vba都屬於解釋型語言,它們之間最有可比性。
2、從測試結果來看,在這幾種語言中,Lua的運算速度僅次於delphi !而delhpi的編譯速度、執行速度都是久負盛名的。
3、這里之所以把vba也算一個,是因為自從微軟宣布停止對vb6的支持後,vb將死的說法一直不絕於耳。但是Office是微軟的傳家寶,一直在不斷升級。office中與vb6同宗同源的vba自然不會被微軟舍棄,網上有人從中提取出了可以獨立安裝的vba6.5和vba7.0,(office2003中的vba版本是6.0),我用vba6.0測試了一下,比vbs還要慢很多,而用vba7.0就快多了。真是個令人驚喜的意外發現!