2014-09-13 1 views
4

Я, должно быть, что-то пропустил. Но я получаю такую ​​же производительность с PHP и hhvm, запустив
ab -n 100 -c 10 http://127.0.0.1:8080/hhvm производительность похожа на PHP 5.5 Ubuntu 14.04

PHP -v возвращает:

HipHop VM 3.2.0 (rel) 
Compiler: tags/HHVM-3.2.0-0-g01228273b8cf709aacbd3df1c51b1e690ecebac8 
Repo schema: c52ba40f4a246d35a88f1dfc1daf959851ced8aa` 

tail -3 /var/log/nginx/access.log возвращает

127.0.0.1 - - [13/Sep/2014:02:46:33 +0300] "GET/HTTP/1.0" 200 116 "-" "ApacheBench/2.3" 
127.0.0.1 - - [13/Sep/2014:02:46:33 +0300] "GET/HTTP/1.0" 200 116 "-" "ApacheBench/2.3" 
127.0.0.1 - - [13/Sep/2014:02:46:33 +0300] "GET/HTTP/1.0" 200 116 "-" "ApacheBench/2.3"` 

Nginx конф:

location ~ \.(hh|php)$ { 
       fastcgi_keep_conn on; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
       include  fastcgi_params; 
} 

это m у /etc/hhvm/php.ini файла:

hhvm.log.level = Warning 
hhvm.log.always_log_unhandled_exceptions = true 
hhvm.log.runtime_error_reporting_level = 8191 
hhvm.mysql.typed_results = false 
hhvm.eval.jit_warmup_requests = 0 
hhvm.eval.jit = true 

и это мой /etc/hhvm/server.ini файл:

pid = /var/run/hhvm/pid 

; hhvm specific 

hhvm.server.port = 9000 
hhvm.server.type = fastcgi 
hhvm.server.default_document = index.php 
hhvm.log.use_log_file = true 
hhvm.log.file = /var/log/hhvm/error.log 
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc 
hhvm.eval.jit_warmup_requests = 0 
hhvm.eval.jit = true 

Я удостоверился, чтобы перезапустить hhvmnginx, а также перезагрузил свой сервер.

ответ

8

Я работаю над командой HHVM, и недавно я смотрел на бенчмаркинг. Несколько проблем выделяются:

  1. hhvm.eval.jit_warmup_requests = 0 - почему вы это устанавливаете?
  2. Вы действительно делаете какие-либо просьбы о разминке? Каждый jit медленный для начала - я ожидал бы, что php5 будет бить HHVM прямо за первые 10-50 запросов.
  3. -n 100 -c 10 является довольно низким

Сравнительный анализ очень трудно; Я пытаюсь автоматизировать «хороший» набор тестов - здесь вы можете найти незавершенную работу: https://github.com/facebook/hhvm/tree/master/hphp/test/frameworks/perf/

В настоящее время он поддерживает только Wordpress, но я надеюсь скоро это изменить.

Ключевые вещи он делает:

  • пробегов -n 300 С10 в качестве разминки (используя осаду вместо аб)
  • хиты несколько адресов, а не только/
  • убеждается HHVM является накопление релиза, без утверждает, и имеет JIT включен
  • убеждается PHP5 (или PHP-NG) имеет кэш опкода включен
  • работает -с 60 в течение 1 минуты для фактического теста

Также, какой код вы пытаетесь запустить? Вполне возможно, что мы на самом деле медленнее запускаем ваш код; например, мы быстро запускаем медиавики, но мы медленно запускаем «печать» в цикле, фибоначчи или других классических тестах.

+0

Я удалил hhvm.eval.jit_warmup_requests = 0 и увеличил показатель до -n 1000 -c 100. Код представляет собой кучу библиотек bootstrap через композитор и несколько классов, которые я написал поверх него –

+0

Вы запустили отдельные запросы на разминку? Этого также недостаточно информации о коде - есть ли у вас шанс поделиться им? –

+0

Не могли бы вы подробнее рассказать о том, как выполнять отдельные запросы разминки? Если вы можете связать меня с документом. Извините, но я не могу поделиться этим кодом. Я могу делиться только своими зависимостями. –

Смежные вопросы