Więc mam tę aplikację szyny z okropnym problemem wycieku pamięci. Używam go na Heroku, i przez ostatnie kilka dni, gdy próbowałem dowiedzieć się, co na ziemi powoduje to, musiałem ciągle restartować aplikację co 5 godzin lub pamięć przekracza 512 i moja aplikacja się zawiesza.Wyciek pamięci w Rails App ... string koszmar
Używam Oink i nie widzę niczego podejrzanego w moich instancjach. Jedyne, co się dzieje, to to, że przy każdym ładowaniu strony wykorzystywana pamięć skacze do góry. Nie ma nawet znaczenia, którą stronę ładuję, jest pozornie przypadkowa.
Nowy Relik również nie był przydatny, ponieważ nie ma nic wspólnego z konkretną akcją kontrolera.
Jedyne, co udało mi się znaleźć, to użycie ObjectSpace, która ujawniła ENORMOUS liczbę obiektów string w pamięci, a liczba po prostu rośnie i rośnie. Użyłem małego narzędzia do zarejestrowania wartości łańcuchów i wszystkie są puste. Nie zero ... ale białe spacje. Moja aplikacja produkcyjna regularnie korzysta z ponad 200 000 obiektów ciągów.
Czy ktoś ma pojęcie, z czego mogą pochodzić? To naprawdę podkreśla, że muszę być na moim komputerze co pięć godzin, żeby utrzymać moją stronę przy życiu.
Dzięki!
Trudno podać konkretną poradę, poza usuwaniem kodu, dopóki nie uzyskasz najmniejszego możliwego przykładu, który pokazuje problem i opublikujesz go pod postacią –
. Uruchom go na alternatywnym serwerze i uderzaj go ciągłymi żądaniami CURL, aż do momentu, kiedy będziesz mógł je zaimportować. – peterept
rada: nie rób "string = string1 + string 2", ani 'string + = string1'. Wykonaj: 'ciąg << ciąg 1', w ten sposób nie jest tworzony dodatkowy ciąg znaków – apneadiving