Как отключить компиляцию JIT с помощью HHVM?

Я работаю с hhvm 3.6.1 -- пожалуйста, извините мое ограниченное понимание внутренностей HHVM и того, как он выполняет JIT.

Я пытаюсь подавить JIT-компиляцию в HHVM и запустить php в интерпретируемом режиме. Прямо сейчас я предполагаю, что вы могли бы установить запрос на разогрев в вашем php.ini на какое-то произвольно большое число, например:

 hhvm.eval.jit_warmup_requests = 1000

Тем не менее, я хочу узнать, знает ли кто-нибудь такую ​​​​настройку, как jit_enabled=false

Причина, по которой я это делаю, заключается в том, что я вижу шаткое поведение, работающее с xdebug, включенным с удаленной отладкой (по-видимому, случайные ошибки сегмента, несоответствие файла точкам останова) и хочу исключить JIT - если это вообще имеет смысл с тем, как Функции ХГВМ.


person Ray    schedule 24.04.2015    source источник
comment
Вы пробовали hhvm.jit = false   -  person tlenss    schedule 24.04.2015
comment
Это не работает   -  person Ray    schedule 24.04.2015
comment
@tlens Я также пробовал hhvm.eval.jit = false, и это, похоже, не имеет никакого эффекта.   -  person Ray    schedule 24.04.2015


Ответы (2)


https://github.com/facebook/hhvm/wiki/INI-Settings утверждает, что форма INI действительно hhvm.jit - не уверен, что это точно, но параметр командной строки определенно -v Eval.Jit=false. (Мне любопытно, как вы определяете, что JIT все еще включен, а опция не работает?)

Тем не менее считается, что xdebug работает, и, кроме того, команда в FB (и почти каждое использование, внутри FB и вне) работает с включенным JIT. Хотите верьте, хотите нет, но на самом деле это, вероятно, будет поддерживаться гораздо лучше, чем интерпретатор на данном этапе.

Если у вас возникли проблемы с xdebug, вы должны сообщить о проблеме: https://github.com/facebook/hhvm/issues

person Josh Watzman    schedule 25.04.2015
comment
Я пытаюсь собрать как можно больше информации, прежде чем отправлять сообщение об ошибке. Должно быть, я неправильно понимаю, как определить, работает ли JIT или нет. В настоящее время я просматриваю журнал, делаю 11 запросов и в запросах с двенадцатого по пятнадцатый наблюдаю [] Finished singleJitRequest 1 , [] Finished singleJitRequest 2 ... Я могу ошибочно предположить, что это означает, что JIT происходит. Это происходит независимо от того, устанавливаю ли я hhvm.jit=false или hhvm.eval.jit=false или произвольно задаю большое количество запросов на прогрев. - person Ray; 26.04.2015

Тоже боролся с этим часами.

Чтобы отключить JIT, вы должны найти «hhvm.jit = 1» в server.ini, а не в php.ini.

person Karem    schedule 18.04.2016