Kiedy powinienem korzystać z kompilatora Magento

44

Często widzę, że ludzie wspominają, że korzystają z funkcji kompilatora Magento.

Nigdy nie zastanawiam się, w jakich przypadkach powinieneś go użyć i ile zyskasz wtedy wydajności.

[OŚWIADCZENIE]: Ponieważ ostatnio dostałem sugestię dotyczącą edycji. To pytanie nie dotyczy di-kompilacji magento2, ani trochę magento2.

Flyingmana
źródło
1
Zobacz moje testy porównawcze z kompilatorem: byte.nl/blog/should-i-use-the-magento-compiler
Willem
1
brakuje twojej konfiguracji apc, mamy także moduł opcache w aktualnych wersjach i nie ma już obsługiwanej wersji php, która działa z apc. Zmiany oprogramowania, podobnie jak rozwiązania i obejścia.
Flyingmana

Odpowiedzi:

43

[ZASTRZEŻENIE] Ta odpowiedź jest przeznaczona tylko dla kompilatora w Magento 1, kompilator w Magento 2 ma zupełnie inny cel / efekt

Nigdy nie powinieneś go używać.

Ponieważ PHP opracowało kilka mechanizmów usprawnienia aplikacji zawierających wiele plików.

Oznacza: php opCache w bieżącej wersji php zapewnia lepszą poprawę wydajności, jeśli jest poprawnie skonfigurowany. Na przykład, aby użyć wystarczająco wysokiego limitu dla buforowanych plików. OpCache posiada również ulepszenia funkcji dostępu do systemu plików, które działają na głębszym poziomie niż aoe_classpathcache i jeszcze bardziej poprawia wydajność.

W końcu mamy automatyczne ładowanie, które nie wymaga więcej niż kilku ms bez kompilatora. Są nawet przypadki, w których kompilator wyrządził szkodę wydajności. Nie wspominając już o szalonych czasochłonnych problemach z debugowaniem aplikacji za pomocą kompilatora.

OpCache nie tylko usprawnia automatyczne ładowanie, optymalizacje funkcji systemu plików poprawiają nawet ładowanie plików szablonów i układów.

http://php.net/manual/en/opcache.configuration.php

Flyingmana
źródło
2
Więc sugerujesz, aby wyłączyć kompilację, wyczyścić skompilowane pliki i zamiast tego użyć opCache?
perissf
1
jeśli to podsumujesz, tak
Flyingmana
3
Kompilator jest kludge najbardziej przydatny w wersjach 1.4.1.1, 1.4.2.0 i prawdopodobnie 1.5.1.0. Począwszy od wersji 1.5.1.0 do przodu, optymalizacja kodu zaczęła zmniejszać jego skuteczność. Gdzieś około 1.6 lub 1.7 ktoś przetestował A / B i stwierdził, że może spowolnić system w określonych konfiguracjach serwerów.
Fiasco Labs
3
Dwa ustawienia interpretera PHP, aby pomóc w bazillionach plików, które można zrobić, jeśli masz dostęp do systemu lub możesz poprosić dostawcę hostingu o dokonanie zmiany za Ciebie -> realpath_cache_size=64ki realpath_cache_ttl=3600. 64k wydaje się być ulubionym miejscem, ludzie polecają więcej, ale testy wydajności pokazują, że to strata pamięci.
Fiasco Labs
2
@FiascoLabs Czy masz link / źródło danych liczbowych dotyczących „testów A / B”? Byłoby miło to zobaczyć.
Aram Papazian
11

„Kiedy powinienem korzystać z kompilatora Magento”

Jeśli z jakiegoś powodu twój system nie ma zainstalowanego akceleratora PHP (mało prawdopodobne, ale możliwe)

Jeśli używasz bardzo starej wersji Magento (naprawdę nie powinieneś być)

Dlaczego warto to wyłączyć?

Całkowicie zgadzam się z powyższym komentarzem Fiasco Labs. Chociaż nie podałeś numeru wersji Magento, dotyczy to wszystkich wersji Magento (CE) powyżej 1.6.1, jeśli włączysz kompilator w systemie, który ma już akcelerator php (jak PHP-APC itp.) Cały sklep , od stron administracyjnych aż do sprawdzania klienta będzie mierzalnie wolniejszy, co gorsza, wiele wtyczek / modów, które znajdziesz na magento connect, nie będzie działać poprawnie przy aktywnym kompilatorze.

Krótko mówiąc, w 2014 roku nigdy nie ma żadnego dobrego powodu, aby włączyć kompilator.

Alistair
źródło