2013-07-04 35 views
5

Poszedłem za sylius' install instructions dla kompozytora i otrzymałem kopię lokalną. Problem jest, gdy idę do local/app_dev.php ładowanie trwa bardzo długo, 12-18 sekund. jednak profiler pokazuje znacznie szybszy czas ...Dlaczego sylius działa tak wolno w lokalnych aplikacjach?

Również instrukcje instalacji nie wyjaśniają, jak uzyskać dostęp do lokalnego/app.php lub środowiska produkcyjnego. Każda informacja byłaby pomocna :).

+0

nie masz żadnych innych informacji? – Florian

+1

Wszystkie te informacje mogą być również pobierane z dokumentów symfony. – Florian

+1

http://symfony.com/doc/current/cookbook/configuration/environments.html – Florian

Odpowiedz

10

Po pierwsze, pozwól mi podziękować @Florianowi za jego link i kuksańca, aby mnie trochę wykopać :).

Kiedy zgodnie z instrukcjami wyświetlanymi na sylius' getting started strony:

$ wget http://getcomposer.org/composer.phar 
$ composer.phar create-project sylius/sylius -s dev 
$ cd sylius 
$ app/console sylius:install 

jesteś domyślnie Instalacja przy użyciu pliku config_dev.yml. Spowoduje to ustawienie db jako {dbname} _dev, a także debugowanie w app_dev.php. Gdy debugowanie jest włączone "cache files are dynamically rebuilt on each request." To właśnie powoduje powolną prędkość.

Jeśli chodzi o używanie app.php (production env), możesz uruchomić aplikację/console sylius: install -e prod. Spowoduje to ustawienie zwykłego db i możesz użyć app.php.

Tajemnica rozwiązana :).

użytecznym źródłem: How to Master and Create new Environments - Symfony2

0

biegałam Sylius na ustawieniach domyślnych ustawieniach Vagrant z folderu synchronizacji i okazało się to bardzo powoli, aż do obciążeń 45 sekund! Inne małe projekty Symfony nie były tak złe, więc pomyślałem, że to tylko Sylius, potem czytałem, że zsynchronizowane ustawienia folderów na Vagrant są o wiele szybsze z typem NFS dostępnym na systemach linux, zmniejszono go z 40 do 4 sekund!

Jeśli więc używasz Vagrant i znajdujesz go wolno, ustaw synchronizację folderów na NFS.

1

Sylius o wiele wolniej niż Symfony zarówno w trybie produkcji, jak i rozwoju, mimo że jest zbudowany na Symfony. Powodem jest jego ResourceBundle. Jestem pewien, że istnieją metody, aby przyspieszyć to w produkcji, ale w każdym razie jest bardzo powolny podczas rozwoju.

4

Jeśli jesteś w systemie Windows, upewnij się, że w pliku php.ini ustaw "realpath_cache_size" na co najmniej 5M, zgodnie z zaleceniami SensioDistributionBundle. Tak:

; php.ini 

realpath_cache_size = 5M 

na mojej instalacji Sylius uruchomiony w środowisku dev to zmniejszony czas ładowania ~ z ~ 15 s do 2 s.

Aby jeszcze bardziej skrócić czas ładowania, można rozważyć użycie WinCache https://sourceforge.net/projects/wincache/. Używam następujące ustawienia podczas uruchamiania Sylius z wbudowanym serwerem WWW PHP:

; php.ini 

[wincache] 

wincache.enablecli=1 

wincache.filecount=16384 

WinCache wydaje się działać dobrze ze środowiska dev Sylius użytkownika.

0

NFS pomoże Ci w przypadku Vagrant, ale nadal można go znaleźć w większych projektach. Docker był jeszcze gorszy w MACOSX. Jeśli korzystasz z Linuksa, myślę, że docker skopie tyłek dla developemnt. Również jeśli używasz PHP < 7 przejdź do 7.0 (wyższe wersje mają pewne problemy z atmem Sylius), a zobaczysz ogromną poprawę wydajności nawet w środowisku dev.

Daj także trochę więcej pamięci RAM dla maszyny Vagrant