NGINX: HHVM vs PHP 7

O NGINX é um servidor web praticamente imbatível quando o assunto é servir arquivos estáticos, tais como html, css, png, jpg etc. E quando o PHP marca presença, como fica essa história? Bem, você pode processar as páginas PHP utilizando o HHVM ou o motor Zend PHP.

O HHVM (Hiphop Virtual Machine) é um compilador just-in-time desenvolvido pelo Facebook para executar aplicações que são escritas em PHP e linguagem Hack. Já o motor Zend PHP dispensa apresentações, uma vez em que este é a forma tradicional pela qual executamos aplicações PHP.

Não é foco deste post falar do servidor web Apache, mas vamos a uma comparação:

Trecho retirado do blog E-TINET:

Em um experimento usando o Apache 2.x e NGINX, para servir uma página HTML, temos o seguinte resultado:

* Apache: 4 processos WORKER, 30% CPU, 17MB de memória, conseguiu abrir 6.500 requests por segundo.
* Nginx: apenas 1 processo,15% CPU, 1MB de memória, conseguiu abrir 11.500 requests por segundo.

Agora vem a classica pergunta, devo utilizar o NGINX com HHVM ou com o motor Zend PHP? Não sei, depende do que você vai executar. Veja abaixo alguns gráficos esclarecedores:

WordPress 4.4

  • WordPress 4.4 HHVM RepoAuthoritative benchmark result: 358.33 trans/sec
  • WordPress 4.4 HHVM benchmark result: 335.13 trans/sec
  • WordPress 4.4 PHP 7.0 benchmark result: 287.92 trans/sec
  • WordPress 4.4 PHP 7.0 without opcache benchmark result: 84.87 trans/sec

Drupal 8.0.1

  • Drupal 8 HHVM benchmark result: 1739.28 trans/sec
  • Drupal 8 PHP 7.0 benchmark result: 917.10 trans/sec
  • Drupal 8 PHP 5.6.16 benchmark result: 794.20 trans/sec

Magento 2.0 Community Edition

  • Magento HHVM benchmark result: 192.19 trans/sec
  • Magento PHP 7.0 benchmark result: 183.87 trans/sec
  • Magento PHP 5.6.16 benchmark result: 113.34 trans/sec

Laravel 5.1.11

  • Laravel 5.1.11 HHVM benchmark result: 1128.41 trans/sec
  • Laravel 5.1.11 PHP 7.0 benchmark result: 1363.24 trans/sec
  • Laravel 5.1.11 PHP 7.0 without opcache benchmark result: 245.60 trans/sec

Procedimento de instalação do NGINX e do HHVM: http://e-tinet.com/linux/servidor-web-nginx-hhvm/

Outros testes de performance: https://kinsta.com/blog/the-definitive-php-7-final-version-hhvm-benchmark/