27
História, súčastnosť a budúcnosť spracovania PHP… vieme PHP ešte zr ýchliť? Tomáš Srnka

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

  • Upload
    develcz

  • View
    3.263

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

História, súčastnosť a budúcnosť spracovania PHP…

!

vieme PHP ešte zrýchliť?

Tomáš Srnka

Page 2: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

Tomáš Srnka@tomassrnka, @relbit

Page 3: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?
Page 4: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

– 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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

PHP je pomalé alebo…

bolo pomalé?

Page 6: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

• PHP 5.3 je pomalé, žiadne cachovanie kódu

• Riešenia:

• APC - Alternative PHP Cache

• OPCache (?)

Page 8: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

OpcacheExecuting

Caching

Optimizing

Parsing&Compiling

opcodes

opcodes

opcodes

opcodes

Shared memorySave&Load

Page 11: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?
Page 12: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

Kam ďalej

Page 13: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

• 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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

• 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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

Wordpress 3.9.1., 1GB dummy dát, 15 pluginov

# ab -c 20 -n 10000 http://IP/wordpress/?page_id=5

Page 21: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

Zmenou PHP VM resp. verzie bez zmeny riadku PHP kódu

25 req/s 178 req/s7,12x

Page 23: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

Č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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

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: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

Ďakujem za pozornosť

Page 26: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

Otázky?

• Twitter: @tomassrnka, @relbit

[email protected]

Page 27: Tomáš Srnka - História, súčastnosť a budúcnosť spracovania PHP... vieme PHP ešte zrýchliť?

Páčila sa Vám prednáška?

http://m.Feedbando.com/PHPrychle