- Security – hashowanie haseł w środowisku
test
Wykorzystując poniższy trick wszystkie hasła użytkowników nie będą hashowane co w naszym przypadku, przy dużej ilości testów integracyjnych, powoduje przyspieszenie ich wykonania nawet o 30%.
W plikuconfig/packages/test/security.yaml
dodajemy:security: password_hashers: App\Entity\User: algorithm: plaintext
- Konfiguracja opcache
Nie zapominajmy o odpowiedniej konfiguracji opcache również pod testy i local dev. Dodanie poniższych wpisów dophp.ini
może przyspieszyć testy o kolejne 10%.opcache.enable_cli=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000 - Optymalizacja docker-compose dla local dev / CI
Niektóre serwisy nie są w ogóle wykorzystywane w środowisku dev lub w CI - przykładem może byćnginx
(CI) lubrabbitmq
(messenger ustawiony na async). Usunięcie ich zdocker-compose.yml-gitlab-ci
przyspieszyło nasze testy o kolejne 20%. Pilnujcie aby setup serwisów pod CI był minimalny.
Ostatnim trickiem, którym chcemy się z Wami dzisiaj podzielić jest optymalizacja bazy danych (w naszym przypadkumysql
). Nie polecamy tego do local dev (każdy reboot stacji roboczej resetuje bazę!), ale w CI baza danych może być trzymana jedynie w pamięci, co znacznie przyspiesza tworzenie schematu, wgrywanie fixtures-ów a czasem nawet same testy. Wdocker-compose
wystarczy dodać:mysql:
image: mysql
[...]
tmpfs:
- /var/lib/mysql
- /tmp
Życzymy Wam owocnych optymalizacji.
A może podzielicie się efektami Waszych optymalizacji? Zapraszamy do dyskusji poniżej.