Migracja strony na Symfony 1.4

Zakończyłem przenosiny strony na obecną stabilną linię Symfony 1.4 z wersji 1.3, która była wstecznie kompatybilna z wcześniejszymi założeniami istniejącymi od Symfony 1.0 (stare formularze, obsługa błędów, itp.). Dodatkowo przy okazji zmiany wersji zmieniłem wersję Propela (ORM dla PHP) z 1.4 na 1.5 i zastąpiłem większość zapytań składanych za pomocą Criteria na rzecz QueryAPI.

Głównym problem przy przepisywaniu okazał się brak helpera Form, a co za tym idzie usunięcie wystąpień jego funkcji. Mogłem oczywiście tą niedogodność zniwelować pisząc lub przenosząc plugin w wcześniejszych wersji, ale postanowiłem zrezygnować tego pomysłu na rzecz czystego html-a w prostych formularzach (jednolinijkowce) oraz na rzecz irytujących formsów. Najprostsze okazało się przeniesienie admin generatórów, które wcześniej były skonfigurowane do pracy z formsami.

Wszystkie te zmiany wpłynęły odrobinę negatywnie na szybkość generowania strony, która spadła o ~200ms, a ilości zużytej pamięci zwiększyła się o ~2MB. Wszystkie podane wartości są uśrednionymi wartościami sumarycznymi w trybie deweloperskim.

Zacząłem więc trochę eksperymentować z ustawieniami i odkryłem, że przy niedużych stronach, które nie są bardzo często odwiedzane włączenie xcacha powoduje spadek szybkości generowania strony o około ~400ms. Podczas testowania xcacha nasunęły mi się następujące wnioski. Xcache który miał skrócić czas generowania kodu i zmniejszyć zużycie pamięci nie sprawdza się na hostingu współdzielonym jeśli strona ma małą ilość wywołań. Ponieważ kod nie trafia do cachu, a opóźnia generowania strony wynikają prawdopodobnie z narzutu czasowego potrzebnego na sprawdzenie przez xcacha czy kod jest w cachu oraz czy jest wolna pamięć by dodać obecnie generowany kod do cachu. Więc jeśli macie włączonego xcacha sprawdźcie czy po wyłączeniu nie okaże się, że strona generuje się szybciej bo warto, a nakład pracy jest zerowy.

Podsumowując wszystkie pracę pozwoliły mi oczyścić kod przed udostępnieniem nowych ficzerów (zaplanowanych na październik) oraz przyspieszyć generowanie strony co na pewno przyda się jak dojdzie nowa funkcjonalność.

Autor: Tomasz Rutkowski
Data publikacji: 2010-09-29 10:57

Opublikuj na: Facebook Twitter Wykop