Malý benchmark PHP frameworků Zend a Core

V příštím roce mě čeká redesign portálu Výletník.cz, a proto začínám zjišťovat, který PHP framework by se na tento projekt nejlépe hodil.

Pro začátek jsem se rozhodl srovnat výkon dvou frameworků: Zend a Core.

Že Core ještě neznáte? Ani nemůžete. Je to totiž můj vlastní šílený výplod, který stále ještě není hotov. Původně vychází z MVC frameworku Joea Stumpa, ale z původního kódu se relativně v celku zachoval pouze controller.

Pár frků o Core:

  • MVC s dispatcher view
  • ActiveRecord
  • Request - odstínění od HTTP, dvousměrný router
  • vícejazyčný (locales)
  • cachování výstupu
  • logování chyb
  • autoloading tříd

Framework Zend asi představovat nemusím.

Jako testovací případ jsem zvolil lehce upravený úkazkový případ práce se Zendem. Případ je sice jen velmi jednoduchý ale pro základní test to snad stačí.

V testu jsem se zaměřil na dvě klasické veličiny: čas a alokace paměti. Nejprve jsem měření provedl přímo v php skriptech, následně i pomocí jmeteru. U jmeteru jsem simuloval takovouto zátěž:

  • 10 uživatelů (vláken)
  • start dalšího vlákna po 2s (ramp time 20s)
  • každé vlákno 20 GET dotazů na úvodní stránku

Výsledky

Výsledky pouze potvrdily, čeho jsem se už na začátku bál - Zend je bez cachování velmi časově i paměťově náročný.

-ZendCore
čas měřený v php [sec]0,21660,0361
alokace paměti (peak) [kB]2780565
průměrný čas z jmeteru [sec]1,1090,135
maximální čas z jmeteru [sec]2,7500,266
includovaných souborů 6021

Za správnost měření neručím. Zend neumím - pouze jsem tupě opsal vzorový příklad, takže je dost možné, že stačí nějaká malá úprava a výkon se zvýší. Cachování jsem v testu naschvál nepoužil.

evaluation

comments

comments closed