2010-02-05 5 views
4

Возможно ли иметь экземпляр виртуальной машины, который одновременно выполняет как код HiPE, так и обычные объекты на основе кода «opcode»?Erlang компиляция: смешанный «объектный код HiPE» и «код операции»?

Этот вопрос связан с: Erlang OTP release compiles with HiPE?

+0

связанный: http://stackoverflow.com/questions/2207481/what-are-the-constraints-limitations-of-compiling-with-native – jldupont

+0

относящийся: http://stackoverflow.com/questions/2207481/what -Есть-The-ограничители-ограничения-на-компиляции-с родной – jldupont

ответ

5

Да, это как интегрирован родной компилятор. Только те модули, которые скомпилированы с опцией + native, выполняются в собственном машинном коде, а остальные интерпретируются эмулятором BEAM, как обычно. Когда вы выполняете вызовы между модулями, скомпилированными по-разному, происходит «переключатель режимов». Таким образом, вы можете легко смешивать собственные и эмулированные модули. Тем не менее, вы должны попытаться выбрать, какие модули вы компилируете, чтобы вы избегали переключения режимов в жестких критических циклах производительности, потому что каждый раз возникают небольшие накладные расходы.