Хорошо, поэтому я действительно хочу использовать и верю в HHVM, однако в каждом тесте, который я выполняю, HHVM выходит медленнее, чем PHP. Я запустил много разных тестов для очень сложных сценариев с большим количеством обработки простых скриптов. Для демонстрации я покажу вам результаты с (действительно) простым скриптом.HHVM медленнее, чем PHP 5.5.9 в CLI
public function hhvm(){
$list = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25);
$this->benchmark->mark('code_start');
for ($i=0 ; $i<100 ; $i++) {
serialize($list);
}
$this->benchmark->mark('code_end');
echo $this->benchmark->elapsed_time('code_start', 'code_end');
}
Оба HHVM и PHP работают на том же сервере в CLI: Система ...
- Ubuntu 14,04
- 4 твердотельных накопителей в RAID 0
- 2x Hexcore Xeons
- 64GB Ram
- Codeigniter 3.0 (framework)
- PHP 5.5.9
- HHVM (Последний стабильный релиз от 2/7/2015)
Этот сценарий запуска в 20 раз по каждому из приведенных ниже команд со следующими результатами:
"hhvm /var/www/vhosts/test.local/httpdocs/index.php test hhvm"
Среднее время выполнения = 0,0021
"hhvm -v Eval.Jit=1 -v Eval.JitProfileInterpRequests=0 /var/www/vhosts/test.local/httpdocs/index.php test hhvm"
Среднее время выполнения = 0,0020
"php /var/www/vhosts/test.local/httpdocs/index.php test hhvm"
Среднее время выполнения = 0,0003
Очевидно, это небольшой скрипт, я побежал много гораздо больше сценариев через него и раз я был видящим были PHP = 5.2s HHVM = 6.4s, который не кажется много, но когда у вас слишком много из них работает, все это складывается.
Так что мой вопрос .. Какого черта я делаю неправильно? Почему я не могу установить HHVM быстрее, чем PHP. (это несовместимо с CI3.0? хотя сайт HHVM говорит, что 100% совместим?)
EDIT: Итак, после поиска и поиска, кажется, никто не может дать ответ, я протестировал без работы с каркасом CI3, используя просто стандартный PHP, и результаты почти одинаковы, я попросил 3 других на разных форумах протестировать, и они получают точно такие же результаты. Я пришел к выводу, что HHVM - это шумиха, а в реальных сценариях он просто не разрезает горчицу. Если есть кто-нибудь, чем может доказать мне, что я ошибаюсь, мне хотелось бы услышать от вас, поскольку теоретически HHVM звучит потрясающе, и я бы хотел использовать что-то, что оптимизирует выполнение кода столько, сколько оно требует.
Привет, да, я отключил регистрацию ошибок в /etc/hhvm/php.ini, и это не имело никакого значения. Также первый запрос (выполнялся 20 раз) был с настройками HHVM по умолчанию, поэтому было время прогрева (что, по моему мнению, стандартно 12 раз). :-( – Kirk