2009-08-19 12 views

Odpowiedz

1

Heap wysypisk kiedy tylko chcesz zobaczyć, co jest przechowywane w pamięci, Out-of-memory błędy Heap wysypisk - obraz w obiektach pamięci - służy do analizy pamięci rdzeni Java - znany również jako wątek wysypisk lub java dumps, używane do przeglądania aktywności wątku wewnątrz maszyny JVM w określonym czasie. javacores IBM powinien dużo dodatkowych informacji oprócz zaledwie wątków i stosów - służy do określenia, zawiesza się, zakleszczenia i przyczyny wydajności degradacją rdzeni systemowe

1

Zrzut Temat jest nora śladów stosu wszystkie wątki, tj jako jeśli każda Nić nagle rzuciła wyjątek i printStackTrace'ed to. Jest tak, że możesz zobaczyć, co każdy wątek robi w określonym punkcie, i jest na przykład bardzo dobry, aby złapać zakleszczenia.

Zrzut sterty jest "binarnym zrzutem" pełnej pamięci używanej przez JVM, i jest na przykład przydatny, jeśli potrzebujesz wiedzieć, dlaczego zabrakło Ci pamięci - w zrzucie sterty możesz na przykład zobaczyć, że masz miliard obiektów użytkownika, nawet jeśli masz tylko tysiąc, co wskazuje na problem z utrzymaniem pamięci.

42

Zrzut wątku jest zrzutem stosów wszystkich wątków na żywo. Jest to użyteczne przy analizowaniu, co aplikacja robi w danym momencie, i jeśli jest wykonywane w określonych odstępach czasu, przy diagnozowaniu niektórych problemów z "wykonaniem" (np. Zakleszczenie nici).

Zrzut sterty jest zrzutem stanu pamięci sterty Java. Jest to użyteczne przy analizowaniu, jakie wykorzystanie pamięci aplikacja robi w pewnym momencie tak przydatnym w diagnozowaniu niektórych problemów z pamięcią, a jeśli jest wykonywane w określonych odstępach czasu, przy diagnozowaniu przecieków pamięci.

To właśnie one są "surowe" i mogą być dostarczane na wiele sposobów. Zwykle używane do opisywania zrzuconych plików z JVM i serwerów aplikacji, w tej formie są narzędziem niskiego poziomu. Przydaje się, jeśli z jakiegoś powodu nie można uzyskać niczego innego, ale łatwiej będzie znaleźć życie przy użyciu przyzwoitego narzędzia do profilowania, aby uzyskać podobne, ale łatwiejsze do przeanalizowania informacje.

W przypadku produktu WebSphere plik javacore jest zrzutem wątków, aczkolwiek zawiera wiele innych informacji, takich jak blokady i załadowane klasy oraz niektóre ograniczone informacje o wykorzystaniu pamięci, a plik PHD jest zrzutem sterty.

Jeśli chcesz odczytać plik javacore, możesz to zrobić ręcznie, ale istnieje narzędzie IBM (BM Thread and Monitor Dump Analyzer), które upraszcza. Jeśli chcesz przeczytać plik zrzutu sterty, potrzebujesz jednego z wielu narzędzi IBM: MDD4J lub Heap Analyzer.

+2

MDD4J jest przestarzałe. Zalecanym narzędziem jest Memory Analyzer. – Chao

0

Zrzuty wątków są javacore pokazują migawkę wątków uruchomionych w JVM, przydaje się debugowanie problemów z zawieszaniem, dostarcza informacji o martwych blokadach poziomu java, a także wersja javacores IBm dostarcza znacznie więcej przydatnych informacji, takich jak użycie sterty, Wykorzystanie procesora dla każdego wątku i użycie ogólnego sterty wraz z liczbą klas obciążonych przez JVM.

Heapdumps dostarcza informacji na temat użycia sterty Java przez maszynę JVM, której można użyć do debugowania wycieków pamięci. Heapdumps są generowane przez maszyny JVM IBM, gdy JVM jest uruchamiana na outofmemoryerror, Heapdumps są tylko dla przecieków sterty w java, natywny błąd braku pamięci może spowodować zrzut systemu zwykle z "Ogólną ochroną bezpieczeństwa" GPF.

0

Zrzut głowy JVM jest migawką pamięci sterty JVM w określonym czasie. Jest to po prostu reprezentacja JVM w stosie. To jest stan obiektów.

Zrzut wątku JVM jest migawką wątków JVM w określonym czasie. Więc to, co robili wątki w danym momencie. To jest stan wątków. Pomaga to w zrozumieniu takich zablokowanych wątków, zawieszonych wątków i uruchomionych wątków.

Dump głowy zawiera więcej informacji o poziomie klasy java niż zrzut wątku. Na przykład zrzut głowicy jest dobry do analizy problemów pamięci sterty maszyn JVM i błędów OutOfMemoryError. Zrzut head JVM generowany jest automatycznie, gdy pojawi się coś takiego jak OutOfMemoryError. Zrzut sterty może zostać utworzony ręcznie poprzez zabicie procesu za pomocą kill -3. Generowanie zrzutu sterty to intensywne zadanie obliczeniowe, które prawdopodobnie zawiesi twoje jvm. więc nie jest to metond do użycia offetenly. Stertę można analizować za pomocą narzędzi takich jak analizator pamięci Eclipse.

Core dump to użycie pamięci obiektów na poziomie pamięci operacyjnej. Ma więcej informacji niż zrzut na głowę. zrzut rdzenia nie powstaje, gdy celowo zabijamy proces.

Powiązane problemy