2015-04-03 46 views
1

如果hack代碼被編譯爲C++,那麼在bash處理算法中,與C++在同一聯盟中的hack程序的時間效率是多少?例如:帶浮動加和大的大循環)Hack如何與C++進行比較?

+0

聽起來像一個很好的實驗,有人可以運行。 – 2015-04-03 15:27:34

回答

1

這是一個基本的誤解。原HipHopForPHP compiled PHP code to C++,但新的HHVM,並通過擴展哈克朗不編譯爲C++。

在新的HHVM中,代碼被編譯爲HHVM特定的彙編語言(字節碼),然後由HHVM自身解釋。欲瞭解更多詳細信息,請參閱本博文:http://hhvm.com/blog/6323/the-journey-of-a-thousand-bytecodes

有使用LLVM代碼生成的嘗試,但它被認爲太冒險:http://hhvm.com/blog/10205/llvm-code-generation-in-hhvm

這意味着你的代碼永遠不會直接打到CPU,它總會可以在虛擬機中運行,非常像Java。儘管Hack速度很快,但速度遠不及C++那麼快,它具有大量零成本優化,並且在編譯後直接在CPU上運行。

+1

Facebook的擴展PHP東西的早期版本是C++編譯,但是。 https://en.wikipedia.org/wiki/HipHop_for_PHP – Xmanoux 2016-12-23 11:38:38

+0

是的,但相當一段時間情況並非如此,Hacklang是從未彙編到C++的AFAIK。我會修復我的答案,以更好地反映HHVM的歷史。 – Janoszen 2016-12-23 12:15:34