[Symfony]ContextListener - przekroczenie limitu pamięci |
[Symfony]ContextListener - przekroczenie limitu pamięci |
23.03.2022, 12:34:39
Post
#1
|
|
Grupa: Moderatorzy Postów: 6 071 Pomógł: 860 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Witam,
mam problem z Symfony 4.4 + PHP 7.4 i zużyciem pamięci. Jest formularz z kilkoma polami i w momencie jego wysłania serwer wyrzuca błąd 502 lub symfoniową stronę błędu (różnie). Błąd tyczy przekroczenia pamięci w klasie ContextListener. W kodzie kontrolera obslugującego formularz jest:
i z tego co zdiagnozowałem to wiadomość flash prawidłowo się zapisuje (więc wcześniejszy kod wykonuje się prawidłowo), dopiero potem rzucany jest błąd. Jeśli w tym momencie wywołam adres spod trasy 'prpo_msg_list' to wczytuje się on prawidłowo + widzę dodany wcześniej komunikat flash. Zrobiłem też inny test. Lokalnie podniosłem limit pamięci dla tej akcji do 1024M i zakomentowałem linijkę z przekierowaniem. W efekcie akcja post się wykonuje ale nie następuje przekierowanie więc mogę zobaczyć profiler. W momencie wczytania pustego formularza zużycie pamięci pokazywane przez profiler waha się w granicach 20-40MB (co odświeżenie różna wartość), natomiast po wysłaniu formularza postem wynosi... 400MB. Wyświetlając informacje z profilera Symfony widzę, że największy wzrost pamięci odnotowywany jest w debug.security.authorization.vote (skok o kilkaset mega). Idąc dalej: przekroczenie pamięci następuje w klasie ContextListener w linii: Zrzuciłem sobie zawartość $token na ekran i zauważyłem, że obiekt użytkownika zawiera m.in. wszystkie wiadomości (krótkie tekstowo, ilość ok. 20 więc bez szału) i poszedłem w tym kierunku. W encji widzę:
Samo dojście do wyświetlenia dumpu $tokena zajmuje ok. 40 sekund. W momencie gdy zakomentuję fragment związany z @ORM\JoinTable są to 3 sekundy. No ale usunięcie tego fragmentu powoduje kolejne błędy w aplikacji. Czy ktoś z Was spotkał się z takim zjawiskiem? Gdzie szukać przyczyny tak ogromnego zużycia pamięci? |
|
|
Wersja Lo-Fi | Aktualny czas: 22.09.2024 - 06:27 |