2010-02-05 26 views

回答

11

進行跟蹤,斷點和單步執行,光束仿真器提供的功能是不是在本地編譯的代碼可用。當您加載同一模塊的較新版本時,本地代碼還沒有從內存中真正卸載,這仍然存在限制。 (如果你有一個長期運行的系統,在這個系統中你不斷升級模塊或者動態地生成和編譯模塊,這可能是一個問題。)

此外,在本地代碼和模擬BEAM代碼之間跳轉時有一個小的開銷,所以你應該避免讓這種模式在速度緊張的緊密環路中切換。最好將所有緊密相關的模塊編譯爲本地模塊,並且如果可能的話,也可以編譯最重要的標準庫模塊最後,儘管本機編譯器經過了很好的測試,但是HiPE中編譯器錯誤的概率比BEAM仿真器C代碼中的錯誤率高一點(儘管可能不高於GCC中的錯誤),但是,所以你可能會冒更大的系統段錯誤風險。這些日子雖然很罕見。總之,現在可能不推薦進行本地編譯的主要地方是獨立產品(如提供給客戶的黑盒服務器),其中穩定性,遠程可調試性和低內存使用是您主要關心的問題,計算速度通常不會。

+0

「現在可能不推薦本地編譯的主要地方是獨立產品」:這似乎與@rvidring在相關文章中所說的相反。 – jldupont 2010-02-06 11:34:49

+0

似乎無法找到您指的帖子。指針? – RichardC 2010-02-06 23:26:11

+3

我說了什麼? :-)我似乎無法找到它。 – rvirding 2010-02-08 14:27:42

相關問題