ݺߣ

ݺߣShare a Scribd company logo
História, súčastnosť a budúcnosť 
spracovania PHP… 
! 
vieme PHP ešte zrýchliť? 
Tomáš Srnka
Tomáš Srnka 
@tomassrnka, @relbit
Devel.cz - História, súčastnosť a budúcnosť spracovania PHP…   vieme PHP ešte zrýchliť?
“Nearly half of web users expect a site to load 
in 2 seconds or less, and they tend to abandon 
a site that isn’t loaded within 3 seconds..” 
– Sherice Jabocs, KissMetrics 
http://blog.kissmetrics.com/speed-is-a-killer/
PHP je pomalé 
alebo… 
bolo pomalé?
PHP 5.3 
• 5.3.X verzia je najpoužívanejšia PHP verzia 
• viac ako 50% market share vďaka distribúciam 
RHEL 6, Debian Squezy, Ubuntu 12.04 LTS 
• end of life, 5.3.28 obsahuje niekoľko kritických 
chýb
• PHP 5.3 je pomalé, žiadne cachovanie kódu 
• Riešenia: 
• APC - Alternative PHP Cache 
• OPCache (?)
PHP 5.4 
• Nárast výkonu o cca 15% 
• Zníženie pamäťovej náročnosti o 20% 
• Real life, niekde okolo 5% zlepšenie 
• OPCache sa stáva použiteľným
PHP 5.5 
• Build-in OpCache a štandardne je zapnutá 
• Voči PHP 5.4 znovu zrýchlenie o 15% bez 
OpCache, s OpCache výrazne viac 
• Real life potvrdzuje aj zrýchlenie o 15-20%
Opcache 
Executing 
Caching 
Optimizing 
Parsing&Compiling 
opcodes 
opcodes 
opcodes 
opcodes 
Shared memory 
Save&Load
Devel.cz - História, súčastnosť a budúcnosť spracovania PHP…   vieme PHP ešte zrýchliť?
Kam ďalej
PHP 5.6-dev 
• Evolúcia PHP, tak ako pri 5.4 a 5.5 
• Aktuálne PHP 5.6-RC1 
• Značne zlepšená OpCache 
• PHP 5.6 bude vydané v najbližších mesiacoch
PHP-NG (5.7-dev) 
• Umožní implementovať JIT kompilátory do PHP 
• Výrazne zníženie alokácie pamäte => Zníženie 
počtu inštrukcií 
• Wordpress používa iba 45% počtu inštrukcií na 
vygenerovanie homepage voči PHP 5.5 
• SAPI mod_php nebude dostupné
• Just-in-time (JIT) kompilacia do bytecode 
• Výrazne lepší výkon, až 10x rýchlejšia exekúcia 
• (Takmer) stabling riešenie 
• Kompatibilné s väčšinou opensource Frameworkov
• Proof-of-concept 
• Github nesedí s reálnym stavom, vývoj za 
zatvorenými dverami 
• Opensource verzia bude k “ničomu” 
• 2-3x rýchlejšie ako HHVM / 20-30x rýchlejšie ako 
PHP
Benchmark-y 
• Testovacie prostredie: 
• Scientific Linux 6.5 (klon RHEL 6), OpenVZ, ZFS (100% IO hitrate) 
• Core i7 920 - 2.66GHz, 24GB RAM 
• nginX a fastcgi 
• Vlastné buildy PHP 5.3, 5.4, 5.5, 5.6-dev, HHVM a HippyVM 
! 
• Cieľ 
• Porovnať hrubý a reálny dopad zmien medzi verzia PHP a nových PHP VM
Fannkuch 
• Hrubá vypočetná sila, generovanie permutacií 
Sekundy 
4000 
3000 
2000 
1000 
0 
PHP 5.3 
PHP 5.4 
PHP 5.5 
PHP 5.6-dev 
HHVM 
HippyVM 
Menej je lepšie
gcBench 
• Memory allocation & Garbage Collector Benchmark 
Sekundy 
50 
37,5 
25 
12,5 
0 
PHP 5.3 
PHP 5.4 
PHP 5.5 
PHP 5.6-dev 
HHVM 
HippyVM 
Menej je lepšie
Wordpress 3.9.1., 1GB dummy dát, 15 pluginov 
# ab -c 20 -n 10000 http://IP/wordpress/?page_id=5
Requests per second 
Wordpress - benchmark 
180 
135 
90 
45 
0 
PHP 5.3 
PHP 5.3-APC 
PHP 5.4 
PHP 5.5-OpCache 
PHP 5.6-OpCache 
HHVM 
Viac je lepšie
Zmenou PHP VM resp. verzie 
bez zmeny riadku PHP kódu 
25 req/s 7,12x 178 req/s
Čo sa do testu nezmestilo 
• JPHP - Kompilátor PHP do JVM, 2-10x rýchlejší 
ako čisté PHP, kompatibilné s PHP 5.4 
• Zephir - Kompilátor PHP do C, vlastný fork PHP 
• PHP-NG - v čase testu viac padalo ako bežalo $ 
• HippyVM - neexitujúca opensource MySQL 
extension 
• [ Moja “vlastná” VM pre PHP ]
Kam ide PHP? 
• Opensource je super, každý si môže spraviť 
svoj FORK :) 
• Veľká fragmentácia v posledných mesiacoch, 
či už vo forme VM alebo samotného jazyka 
• Rasmus Lerdorf naklonený HHVM, Vývojári 
Zend bojujú za vlastný JIT, preto PHP-ng 
• Čas ukáže, zatiaľ vyhráva HHVM (Facebook)
Ďakujem za pozornosť
Otázky? 
• Twitter: @tomassrnka, @relbit 
• tomas.srnka@relbit.com
http://m.Feedbando.com/PHPrychle

More Related Content

Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?

  • 1. História, súčastnosť a budúcnosť spracovania PHP… ! vieme PHP ešte zrýchliť? Tomáš Srnka
  • 4. “Nearly half of web users expect a site to load in 2 seconds or less, and they tend to abandon a site that isn’t loaded within 3 seconds..” – Sherice Jabocs, KissMetrics http://blog.kissmetrics.com/speed-is-a-killer/
  • 5. PHP je pomalé alebo… bolo pomalé?
  • 6. PHP 5.3 • 5.3.X verzia je najpoužívanejšia PHP verzia • viac ako 50% market share vďaka distribúciam RHEL 6, Debian Squezy, Ubuntu 12.04 LTS • end of life, 5.3.28 obsahuje niekoľko kritických chýb
  • 7. • PHP 5.3 je pomalé, žiadne cachovanie kódu • Riešenia: • APC - Alternative PHP Cache • OPCache (?)
  • 8. PHP 5.4 • Nárast výkonu o cca 15% • Zníženie pamäťovej náročnosti o 20% • Real life, niekde okolo 5% zlepšenie • OPCache sa stáva použiteľným
  • 9. PHP 5.5 • Build-in OpCache a štandardne je zapnutá • Voči PHP 5.4 znovu zrýchlenie o 15% bez OpCache, s OpCache výrazne viac • Real life potvrdzuje aj zrýchlenie o 15-20%
  • 10. Opcache Executing Caching Optimizing Parsing&Compiling opcodes opcodes opcodes opcodes Shared memory Save&Load
  • 13. PHP 5.6-dev • Evolúcia PHP, tak ako pri 5.4 a 5.5 • Aktuálne PHP 5.6-RC1 • Značne zlepšená OpCache • PHP 5.6 bude vydané v najbližších mesiacoch
  • 14. PHP-NG (5.7-dev) • Umožní implementovať JIT kompilátory do PHP • Výrazne zníženie alokácie pamäte => Zníženie počtu inštrukcií • Wordpress používa iba 45% počtu inštrukcií na vygenerovanie homepage voči PHP 5.5 • SAPI mod_php nebude dostupné
  • 15. • Just-in-time (JIT) kompilacia do bytecode • Výrazne lepší výkon, až 10x rýchlejšia exekúcia • (Takmer) stabling riešenie • Kompatibilné s väčšinou opensource Frameworkov
  • 16. • Proof-of-concept • Github nesedí s reálnym stavom, vývoj za zatvorenými dverami • Opensource verzia bude k “ničomu” • 2-3x rýchlejšie ako HHVM / 20-30x rýchlejšie ako PHP
  • 17. Benchmark-y • Testovacie prostredie: • Scientific Linux 6.5 (klon RHEL 6), OpenVZ, ZFS (100% IO hitrate) • Core i7 920 - 2.66GHz, 24GB RAM • nginX a fastcgi • Vlastné buildy PHP 5.3, 5.4, 5.5, 5.6-dev, HHVM a HippyVM ! • Cieľ • Porovnať hrubý a reálny dopad zmien medzi verzia PHP a nových PHP VM
  • 18. Fannkuch • Hrubá vypočetná sila, generovanie permutacií Sekundy 4000 3000 2000 1000 0 PHP 5.3 PHP 5.4 PHP 5.5 PHP 5.6-dev HHVM HippyVM Menej je lepšie
  • 19. gcBench • Memory allocation & Garbage Collector Benchmark Sekundy 50 37,5 25 12,5 0 PHP 5.3 PHP 5.4 PHP 5.5 PHP 5.6-dev HHVM HippyVM Menej je lepšie
  • 20. Wordpress 3.9.1., 1GB dummy dát, 15 pluginov # ab -c 20 -n 10000 http://IP/wordpress/?page_id=5
  • 21. Requests per second Wordpress - benchmark 180 135 90 45 0 PHP 5.3 PHP 5.3-APC PHP 5.4 PHP 5.5-OpCache PHP 5.6-OpCache HHVM Viac je lepšie
  • 22. Zmenou PHP VM resp. verzie bez zmeny riadku PHP kódu 25 req/s 7,12x 178 req/s
  • 23. Čo sa do testu nezmestilo • JPHP - Kompilátor PHP do JVM, 2-10x rýchlejší ako čisté PHP, kompatibilné s PHP 5.4 • Zephir - Kompilátor PHP do C, vlastný fork PHP • PHP-NG - v čase testu viac padalo ako bežalo $ • HippyVM - neexitujúca opensource MySQL extension • [ Moja “vlastná” VM pre PHP ]
  • 24. Kam ide PHP? • Opensource je super, každý si môže spraviť svoj FORK :) • Veľká fragmentácia v posledných mesiacoch, či už vo forme VM alebo samotného jazyka • Rasmus Lerdorf naklonený HHVM, Vývojári Zend bojujú za vlastný JIT, preto PHP-ng • Čas ukáže, zatiaľ vyhráva HHVM (Facebook)
  • 26. Otázky? • Twitter: @tomassrnka, @relbit • tomas.srnka@relbit.com