Zrychlujeme!

29. 4. 2015

Kdo by rád neporovnával benchmarky PHP frameworků... Dnes jsem zavadil o Laravel Lumen. Ideální pro tvorbu API, jak píše autor Taylor Otwell. Zároveň uvádí, že Lumen zvládne kolem "1900 requests per second". Jistě, týká se to out-of-box frameworku, ale i tak je to pozoruhodné, nebo spíš zajímavé číslo. Pojďme si vzít stopky do ruky sami.

Ahoj světe, Nette

Začneme, jak jinak, Nette Sandboxem. Standardní composer create-project nette/sandbox odpovídá na cca 108 requestů/s. Nette Microframework si s odpovědí pospíší - čas requestu je přibližně poloviční. Abychom však porovnávali s Lumenem čísla ve stejném prostředí, musíme stopnout čas i jemu na našem železe. Stejně jako dosud testované frameworky i tento pustíme bez jakýchkoliv APC a jiných cachí. Podívejme, Lumen odpoví po cca 13 ms. Počet requestů za sekundu vyjde na 763. "Velký" Laravel je na tom přitom znatelně hůře než Nette Sandbox - 35 requestů/s s průměrným časem odezvy 284 ms.

Na čem to všechno "jedu"

PHP 5.6, Vagrant 1.7.2, NGINX 1.6.2, Virtualbox 4.3, 2GB RAM. Na Macbooku (mid-2012) běží ještě další servery a nějaká multimédia, klasika

HHVM

Pokud za NGINX ještě zřetězíme HHVM, Sandbox Nette zvládne přibližně 160 requestů/s, průměrný request 63ms, micro verze je víe jak dvojnásobně rychlejší. Lumen se vyhoupne na zhruba 1050 requestů/s s průměrnou dobou 10ms.

Edit: Pro srovnání jsem přidal ještě framework Phalcon. Srovnávat Phalcon s/bez HHVM nemá smysl, ve výsledcích je tedy zahrnut pouze benchmark bez HHVM..

Kompletní výsledky

Bez HHVM:
	Laravel Lumen:
		Requests per second:    762.79
		Time per request:       13.110 [ms]

	Laravel:
		Requests per second:    35.18
		Time per request:       284.238 [ms]

	Nette Sandbox:
		Requests per second:    108.78
		Time per request:       91.929 [ms]

	Nette Micro:
		Requests per second:    219.15
		Time per request:       45.630 [ms]

	Phalcon:
		Requests per second:    1452.03
		Time per request:       6.887 [ms]

HHVM:
	Laravel Lumen:
		Requests per second:    1044.99
		Time per request:       9.569 [ms]

	Laravel
		Requests per second:    57.55
		Time per request:       173.762 [ms]

	Nette Sandbox:
		Requests per second:    158.25
		Time per request:       63.191 [ms]

	Nette Micro:
		Requests per second:    367.35
		Time per request:       27.222 [ms]

Komentáře (8) Přidat komentář

Tento web používá k poskytování služeb a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. V pořádku Další informace