e-mail:

Porównanie szybkości Smarty i Template Lite

Autor: Adam Major, data: 2007-07-14

Jednym z głównych argumentów przeciwników systemów szablonów jest ich powolność i spore rozmiary dodatkowego kodu, który należy dołączyć do projektu. Głównie w ogień krytyki trafia Smarty  , który przez ostatnie lata stał się niemal nieformalnym standardem, oferując bardzo szeroki wachlarz funkcjonalności i dość dobrą szybkość.

Powstała grupa osób, która nie chcąc odrzucać “standardu” Smarty na rzecz dużo uboższych lecz ponoć szybszych (stwierdzenie tego wymagałoby dogłębnych testów) rozwiązań szablonowych, postanowiła stworzyć uproszczoną (pozbawioną niepotrzebnej funkcjonalności) oraz poprawioną wersję Smarty, która nazwali Template Lite   (wcześniej projekt nosił nazwę Smarty Lite).

Twórcy Template Lite głoszą nowinę, że ich rozwiązanie jest dużo szybsze, mniejsze, zgrabniejsze etc. Postanowiłem porównać szybkość najnowszych dostępnych wersji Smarty 2.6.18 i Template Lite 2.10 bez zagłębiania się w szczegóły różnic implementacji funkcjonalności oraz bez dodatkowej optymalizacji konfiguracji, używając plików jak zostały dostarczone w archiwum.

Procedura testowa nie zmieniła się od czasu napisania artykułów o systemach szablonów (szczegółowa metodologia) , natomiast po tych 5 latach uległa zmianie platforma sprzętowa i programowa. Testy zostały wykonane na niewiele obciążonym serwerze wyposażonym w Athlon 64 3700+, 2 GB RAM, 2 dyski 320 GB spięte w RAID 1, napędzanym przez system operacyjny FreeBSD   6.2 AMD 64 z PHP 5.2.3 pracującym jako fastcgi oraz serwerem HTTP Lighttpd  . Dodatkowo jako akcelerator PHP został użyty Xcache   1.2.0 (wyniki z włączonym Xcache zostały zaprezentowane w kolorze zielonym, a szary kolor prezentuje czyste PHP, bez włączonego Xcache). Szybkość testowana była za pomocą Apache Benchmark 2.0.40-dev.

wyniki

Jak widać Template Lite jest rzeczywiście szybsze, jeśli nie stosujemy akceleratora (opcode cache) PHP (Xcache wyłączony) natomiast przegrywa znacznie, jeśli taki program używamy. Raczej trudno w dzisiejszych czasach znaleźć dobry hosting, który by działał na czystym PHP.

Być może coś nie tak ustawiłem w konfiguracji Template Lite, że wypadł tak blado, do artykułu dołączam pełne archiwum zawierające Smarty, Template Lite oraz pliki testowe (test1.php i test2.php) znajdujące się w podkatalogach demo/ każdego z systemów.

Zwycięzcą jest?

Tak więc werdykt może być tylko jeden zostaje przy Smarty, chyba, że czytelniku znasz szybszy mechanizm oferujący choć połowę funkcjonalności Smarty?

Jako ciekawostkę dodam, że w przypadku gdy Xcache był włączony pierwsze wygenerowanie strony przy skasowanych skompilowanych szablonach, dla Smarty trwało 6 razy dłużej niż dla Template Lite. Jednak ten wynik był odrzucany (zgodnie z metodologią), później Smarty był nie do pobicia.

Archiwum testu (354 KB)