Podczas dzisiejszego wywiadu miałem trudne pytanie. Pytali mnie, jak znaleźć główną przyczynę błędu braku pamięci w moim kodzie produkcyjnym. Zacząłem mówić o profilerach. Osoba przeprowadzająca wywiad przeprowadziła ją w innym kierunku, mówiąc, w jaki sposób wygenerować ruch w produkcji, aby skorzystać z profilera. Nie miałem pojęcia. Wszelkie informacje będą bardzo pomocne.Wykrywanie wycieków pamięci w kodzie produkcyjnym
5
A
Odpowiedz
3
Profilers nie są najlepszym narzędziem do ścigać wycieków pamięci w produkcji
- profilowania nie są prowadzone na JVMs produkcyjnych
- jest często niemożliwe do odtworzenia w dev lub przetestować warunki, które stworzyły wyciek pamięci w produkcyjna (wskazówka wywiad)
rozwiązanie to ma zrzutu stosu (na przykład za pomocą jmap JVM - zależny) i analizuje je za pomocą narzędzia takiego jak doskonała (i swobodnie dostępnego) SAP Memory Analyzer (MAT)
Uwaga: Zerwanie sterty blokuje tylko serwer aplikacji, a czasami aplikacja może ulec awarii. I przypuśćmy, że przydzielono 12 GB do jvm podczas produkcji, do analizy zrzutu sterty potrzebujesz innej maszyny z ponad 12 GB. Możesz również użyć jvisualvm do analizy. Jest wysyłany jako część do JDK. –