přejít na obsah přejít na navigaci

Linux E X P R E S

Příspěvky HHVM: co to je, proč používat, jak na to

HHVM: co to je, proč používat, jak na to
Daniel Kozak 21. 09. 2015, 17:26:49
Odpovědět  Odkaz 
Tak co se akceleratoru tyce, tak je urcite skoda, ze autor vynechal jeden z nejznamejsich a nejlepsich (XCache).

Co se tyce HHVM a pametove narocnosti, tak ve spouste pripadu je rozdil o proti standardni distribuci PHP (Zend PHP) velmi mizivi. Co je ale velky problem je ze HHVM "tece", to znamena ze dlouho bezici procesy mohou zrat vice a vice pameti. Da se to resit tak ze se v kodu vyhne cyklickym referencim, nebude v cyklu volat include, neustale predefinovavat promenou obsahujici anonymni funkci atd...

Facebook to resi tak ze proste jedno za cas procesy restartuje.

Dalsi co je treba si uvedomit je ze se HHVM nehodi na "one shot" pouziti. Duvodem je to ze samotna interpretace kodu (i s vypnutym JIT) je az desetinasobne pomalejsi nez u Zend PHP. Takze pokud mate nejaky jednorazovy skript ktery neco vykonava a spustite ho pravidelne treba 10x za sekundu, tak je lepsi zustat u standardniho PHP. Pripadne to prepsat tak aby se ten HHVM proces neukoncoval.

Ja to v praci resim vlastnim demonem (obdoba php-fpm). Ale opet je treba zajistit aby netekla pamet, nebo jednou za cas restartovat.

Jednou z veci jak je mozne mirne zvysit vykon u HHVM je pouziti authorativniho rezimu, jedna se o takovou predkompilaci do HHBC (zisk je okolo 20%). Nevyhodou samozrejme je ze se musi poustet pri kazde zmene, takze se to hodi zejmena jen pro produkcni nasazeni.

Mnohem zajimavejsi se posledni dobou jevi PHP 7. Velmi mile me prekvapila rychlost a celkova narocnost. Zejmena pametove naroky jsou 4x az 5x mensi a rychlost je asi o 5-15% horsi nez HHVM, coz ale neni vubec spatne, kdyz uvazime ze se stale nejedna o JIT.