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?
Odpowiedz
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.
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
Jeśli większość aplikacji jest dostępna w pamięci podręcznej, powinieneś wypróbować serwer proxy, taki jak lakier.
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.
Domyślny problem z sesjami PHP nie jest dyskiem I/O, ale faktem, że są one blokowane. –
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.
3) Serwer Wydajność obracając PHP
- 1. Przyspieszenie wdrażania na Heroku
- 2. Instalowanie aplikacji demo Yii 2
- 3. Przyspieszenie wdrażania Heroku dla aplikacji Rails 4
- 4. sposoby zwiększenia szybkości uruchamiania aplikacji C++
- 5. Jak chronić ciąg połączenia aplikacji Yii?
- 6. renderowanie widoku w aplikacji konsoli Yii
- 7. Uzyskaj adres bazowy w aplikacji YII Consol
- 8. Przyspieszenie roxygen
- 9. Przyspieszenie XPath
- 10. Przyspieszenie czasu emulatora Androida
- 11. Jakiego algorytmu użyć, aby obliczyć najszybsze zamówienie na budowę budynków?
- 12. Przyspieszenie sqlFetch()
- 13. Przyspieszenie częstotliwości Intel MSR
- 14. Co kolekcja .NET zapewnia najszybsze wyszukiwanie
- 15. Najszybsze generowanie plików PDF w PHP?
- 16. Przyspieszenie wywołania Matlab Engine
- 17. Każdy sposób na przyspieszenie Pythona i Pygame?
- 18. Czy istnieje sposób na przyspieszenie Jsoup.parse()?
- 19. Czy istnieje sposób na przyspieszenie kompilacji WiX?
- 20. Najszybsze sprawdzenie, czy istnieje wiersz w PostgreSQL
- 21. Przyspieszenie lub wyeliminowanie tej powolnej funkcji w aplikacji aparatu iPhone'a
- 22. Przyspieszenie rozwoju sieci
- 23. Python - Przyspieszenie do konwersji zmiennej kategorialnej na jej numeryczny indeks
- 24. Elastyczność Yii
- 25. Przyspieszenie montażu SBT
- 26. Blackberry: Przyspieszenie uruchamiania symulatora
- 27. Przyspieszenie Perl DBI fetchrow_hashref
- 28. Przyspieszenie NumPy's gdzie funkcja
- 29. Dwa sposoby na uzyskanie wartości obiektu Point?
- 30. Najlepsze sposoby na zmniejszenie liczby elementów DOM
Czytałaś o [Performance Tuning] (http://www.yiiframework.com/doc/guide/1.1/en/topics. wydajność)? –
To odpowiada wszystkim, czego potrzebuję. Czy następnie usunę ten wpis? Lub zamknąć? – coderama
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. –