2012-12-03 8 views
18

Właśnie zacząłem używać YII i udało mi się ukończyć pierwszą aplikację. Niestety, dzień premiery jest blisko i chcę, aby ta aplikacja była superszybka. Jak dotąd jedynym sposobem na przyspieszenie, z jakim się zetknąłem, jest standard caching. Jakie są inne sposoby na przyspieszenie mojej aplikacji?Najszybsze sposoby na przyspieszenie aplikacji YII?

+13

Czytałaś o [Performance Tuning] (http://www.yiiframework.com/doc/guide/1.1/en/topics. wydajność)? –

+0

To odpowiada wszystkim, czego potrzebuję. Czy następnie usunę ten wpis? Lub zamknąć? – coderama

+0

Alternatywnie, @ bool.dev może umieścić swoją 9-krotnie przegłosowaną odpowiedź w odpowiedzi, a coderama może ją zaakceptować. Nic też z tym nie w porządku. –

Odpowiedz

19

Przede wszystkim przeczytaj Performance Tuning w oficjalnym przewodniku. Dodatkowo:

  • Check HTTP caching.
  • Zaktualizuj swój PHP. Każda ważniejsza wersja daje dobry impuls.
  • Użyj sesji redis (lub przynajmniej bazy danych) dla sesji (domyślne sesje PHP używają plików i blokują).
  • Rozważ użycie nginx zamiast (lub z) apache. Służy ona zawartości znacznie lepiej.
  • Rozważ używanie CDN.
  • Dostosuj swoją bazę danych.

Są to wszystkie ogólne rzeczy, które są stosunkowo łatwe do zrobienia. Jeśli nie jest to do przyjęcia, nie zakładaj. Profil.

+3

Myślę, że część "Włącz APC /' {$ other_opcache} '" powinna być bardziej zestresowana. Prawdopodobnie w połączeniu z [ten przewodnik] (http://www.yiiframework.com/wiki/312/getting-the-most-out-of-apc-for-yii/). HTH :) – DaSourcerer

1

Jeśli większość aplikacji jest dostępna w pamięci podręcznej, powinieneś wypróbować serwer proxy, taki jak lakier.

2

1. Obserwuje najlepsze praktyki

W tym przepisie, zobaczymy jak skonfigurować Yii dla najlepszych spektakli i będzie zobaczyć kilka dodatkowych zasad tworzenia aplikacji reagujących. Zasady te są ogólne i związane z Yii. Dlatego będziemy mogli zastosować niektóre z nich nawet bez użycia Yii.

Przygotowanie

zainstalować APC (http://www.php.net/manual/en/apc.installation.php)

wygenerować nowy wniosek Yii użyciu yiic webapp

2.Speeding się sesje przeładunkowe

Native Obsługa sesji w PHP jest w porządku w większości przypadków. Istnieją co najmniej dwa możliwe powody, będziesz chciał zmienić sposób sesje są obsługiwane:

Podczas korzystania z wielu serwerów, trzeba mieć wspólne przechowywanie sesji dla obu serwerach

sesje Domyślnie PHP wykorzystują pliki, tak maksymalna wydajność możliwe jest ograniczona przez dysk i/o

zależności 3.Using cache i łańcuchy

Yii wspiera wiele backendów cache, ale to, co naprawdę sprawia, Yii cache elastyczny jest wsparcie zależność i uzależnienie łańcuchowym. Istnieją sytuacje, w których nie można po prostu buforować danych przez godzinę, ponieważ buforowane informacje można zmienić w dowolnym momencie.

W tym przepisie zobaczymy, jak buforować całą stronę i nadal zawsze otrzymujemy świeże dane po aktualizacji. Strona będzie typu deska rozdzielcza i pokaże pięć najnowszych artykułów dodanych i sumę obliczoną dla konta.Zauważ, że operacji nie można edytować, ponieważ została dodana, ale artykuł może.

4.Profiling aplikację z Yii

Jeśli wszystko z najlepszych praktyk w zakresie wdrażania aplikacji Yii są stosowane i nadal nie ma wyników, które chcesz, to najprawdopodobniej istnieje kilka wąskich gardeł sama aplikacja. Główną zasadą w walce z tymi wąskimi gardłami jest to, że nigdy nie należy zakładać niczego i zawsze testować i profilować kod przed próbą jego optymalizacji.

+0

Domyślny problem z sesjami PHP nie jest dyskiem I/O, ale faktem, że są one blokowane. –

1

Przejdź do ogólnego teścia wydajności Mysql PHP.

1) Memcache

Memcahced open source dystrybuowane buforowanie pamięci systemowej przedmiot To pomaga przyspieszyć dynamicznych aplikacji internetowych poprzez zmniejszenie obciążenia serwera bazy danych.

2) MySQL Performance Tuning

3) Serwer Wydajność obracając PHP

Powiązane problemy