2012-04-05 74 views
-2

這可能是個愚蠢的問題,但我仍然沒有一個可以接受的理由。
很多人自然認爲高級語言必須比C慢,因爲它是高層次的。 當兩個程序有相同的輸入,輸出和算法時,我認爲速度較慢的人做了不必要的工作。 爲什麼不必要的工作無法消除?爲什麼高級編程語言沒有C那麼快?

+0

假設,假設...你有沒有衡量這個? – Oded 2012-04-05 11:34:58

+0

不容易討論。相關:[讀者問與答:何時會更好的JIT保存託管代碼?](http://herbsutter.com/2012/04/02/reader-qa-when-will-better-jits-save-managed-code/) – sehe 2012-04-05 11:37:25

+1

那麼... *不必要的工作*可能是垃圾收集,內存安全以及更多不重要的事情。將它們從高級語言中刪除,並且您可能擁有與C一樣快的內容。 – 2012-04-05 11:38:59

回答

1

這主要是由於高級語言被解釋並在虛擬機中運行的事實。如果您執行了適當的JIT編譯器,並且語言中間表示法足夠接近機器代碼,則可以得到令人驚訝的結果,如LuaJIT所示。