devel.cz - história, súčastnosť a budúcnosť spracovania php… vieme php ešte zrýchliť?
DESCRIPTION
História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť? Prehľad a zhrnutie aktuálneho stavu (JÚL 2014).TRANSCRIPT
![Page 1: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/1.jpg)
História, súčastnosť a budúcnosť spracovania PHP…
!
vieme PHP ešte zrýchliť?
Tomáš Srnka
![Page 2: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/2.jpg)
Tomáš Srnka@tomassrnka, @relbit
![Page 3: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/3.jpg)
![Page 4: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/4.jpg)
– Sherice Jabocs, KissMetrics http://blog.kissmetrics.com/speed-is-a-killer/
“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..”
![Page 5: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/5.jpg)
PHP je pomalé alebo…
bolo pomalé?
![Page 6: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/6.jpg)
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
![Page 7: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/7.jpg)
• PHP 5.3 je pomalé, žiadne cachovanie kódu
• Riešenia:
• APC - Alternative PHP Cache
• OPCache (?)
![Page 8: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/8.jpg)
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
![Page 9: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/9.jpg)
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%
![Page 10: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/10.jpg)
OpcacheExecuting
Caching
Optimizing
Parsing&Compiling
opcodes
opcodes
opcodes
opcodes
Shared memorySave&Load
![Page 11: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/11.jpg)
![Page 12: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/12.jpg)
Kam ďalej
![Page 13: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/13.jpg)
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
![Page 14: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/14.jpg)
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é
![Page 15: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/15.jpg)
• 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
![Page 16: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/16.jpg)
• 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
![Page 17: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/17.jpg)
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
![Page 18: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/18.jpg)
Fannkuch• Hrubá vypočetná sila, generovanie permutacií
Seku
ndy
0
1000
2000
3000
4000
PHP 5.3PHP 5.4PHP 5.5PHP 5.6-devHHVMHippyVM
Menej je lepšie
![Page 19: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/19.jpg)
gcBench• Memory allocation & Garbage Collector Benchmark
Seku
ndy
0
12,5
25
37,5
50
PHP 5.3PHP 5.4PHP 5.5PHP 5.6-devHHVMHippyVM
Menej je lepšie
![Page 20: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/20.jpg)
Wordpress 3.9.1., 1GB dummy dát, 15 pluginov
# ab -c 20 -n 10000 http://IP/wordpress/?page_id=5
![Page 21: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/21.jpg)
Requ
ests
per
sec
ond
0
45
90
135
180
PHP 5.3PHP 5.3-APCPHP 5.4PHP 5.5-OpCachePHP 5.6-OpCacheHHVM
Wordpress - benchmark
Viac je lepšie
![Page 22: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/22.jpg)
Zmenou PHP VM resp. verzie bez zmeny riadku PHP kódu
25 req/s 178 req/s7,12x
![Page 23: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/23.jpg)
Č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 ]
![Page 24: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/24.jpg)
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)
![Page 25: Devel.cz - História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zrýchliť?](https://reader033.vdocuments.site/reader033/viewer/2022052621/55831e4ad8b42a3c658b4d19/html5/thumbnails/25.jpg)
Ďakujem za pozornosť