Drupal 8 ainda mais rápido em PHP7

Events happening in the community are now at Drupal community events on www.drupal.org.
ricardoamaro's picture

Acabei de escrever um post baseado na apresentação feita por Rasmus Lerdorf (http://en.wikipedia.org/wiki/Rasmus_Lerdorf) em São Francisco à cerca do PHP7.

Nessa apresentação está publicado um benchmark que dá ao Drupal8/PHP7 ~2500 req/sec comparando-o ao Wordpress4.1.1/PHP7 com apenas ~600 req/sec.

No post abaixo são dadas a linhas condutoras que levam a tão grande ganho de performance:
http://blog.ricardoamaro.com/content/drupal-8-skyrocket-fast

Podem ler mais detalhes sobre este assunto no blog do meu colega Wim Leers:
http://wimleers.com/blog/drupal-8-page-caching-enabled-by-default

Mais discussão sobre este assunto é bem-vinda!

Comments

Estupendo

camorim's picture

Olá Ricardo

Já sabia que o D8 adoptara cache tags - A cache tag is a compact string that describes the object being cached (Dries blog) - para se poder fazer de forma granular a cache. E a activação da cache por defeito para anónimos faz todo o sentido.

Desta forma é possível ter um bom sistema de cache a priori - um sistema smart de cache genérico e eficiente para dummies como eu, mas totalmente flexível para os que gostam e precisam de tunning.

Este princípio de cache tags faz-me lembrar o do sistema das translations para D8 em que cada item é também marcado com language que usa, uma espécie de tag, identifier de lang.

Em relação ao benchmark, é impressionante e sustentado pelo Rasmus, muito convincente. E até posso dizer fiável, porque ele quando não gosta de algo, não faz flores. Não me esqueço daquele comentário dele sobre a comunidade ter dado o nome "core" à pasta na raiz do D8.

Damn, whose idea was it to put a directory named "core" in Drupal8? There are many names that don't conflict with the basic sig11 core file

(Rasmus Lerdorf)

https://twitter.com/rasmus/status/567932742622556160

De facto "core" é palavra que pode estar em qualquer sistema e portanto originar conflitos. Se tivessem escolhido "drupalcore", talvez fosse mais correcto.

Voltando à cache, como referiste, Wim Leers tem alguns posts sobre o tema no seu blog e já iniciou capítulo sobre Cache API no documentação do D8.

A verdadeira história aqui é o PHP7

jcnventura's picture

O PHP7 é bastante mais rápido do que qualquer branch da versão 5. A comunidade PHP aprendeu com a HHVM do Facebook e resolveu concentrar-se em fazer o PHP 'base' competitivo.

Quanto ao Drupal 8 para utilizadores anónimos, o novo módulo "page_cache" é realmente um ovo de Colombo, mas ainda há muito a fazer para tornar o D8 mais rápido. Nos DDD2015 houve muita actividade nisto como se pode ver aqui: https://groups.drupal.org/node/464283

Espero que em LA eles consigam fazer um push similar para tornar o D8 tão ou mais rápido que o D7.

João

Essas cache tags que o drupal

PedroMiguel's picture

Essas cache tags que o drupal 8 usa não é mais do que aproveitar componentes do Symphony. (tenho estado afastado do drupal nos ultimos tempos, pois tenho desenvolvido mais em laravel (que usa também componentes do Symphony)) e essas tags já são algo comum em qualquer software moderno.

Com drupal 7, tenho testado em produção HHVM, PHP 7 e PHP 5.6.x (aliás a maior parte dos meus projectos corre sempre sobre a última versão estável do php).

Em relação ao HHVM ainda consegui ter algo que não provocasse seg faults em "real live apps" com Drupal. Funciona tudo muito bem em vanilla mas quando se juntam alguns módulos ou se deixa correr durante uns tempos o hhvm morre com as tais seg fault's.

Com o php7 a história é diferente, com alguns patches e tal consegue-se correr a coisa.. Realmente é bastante mais rápido e escalável, no entanto ainda só o testei em projectos menores pois não me sinto ainda muito à vontade para correr durante muito tempo versoes dev em ambientes de produção, maioritariamente por motivos de segurança. Mas no fundo gostei da performance.

Como tal resta o PHP5.6.x que é onde tenho a maior parte das coisas e posso considerar bastante rápido já que com isto minimamente bem configurado é raro a página que me passa dos 9ms no time from 1st byte.

Tem um exemplo aqui: http://tools.pingdom.com/fpt/#!/eojHnh/www.bonsempregos.com

O página só não carrega toda em 1/3 do tempo devido à publicade lá inserida a cargo do google adsense. Caso contrário seria bem mais rápido.

Portugal

Group categories

Classificação

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: