Czy można załadować obiekty z pliku .hprof z powrotem do programu Java? Utworzyłem zrzut sterty przy użyciu VisualVM. Próbuję użyć zrzutu nie do analizy, ale jako sposób na załadowanie tablicy obiektów, które miałem w tym momencie w programie, z powrotem do programu Java.

Jeśli odpowiedź brzmi nie, to dlaczego nie? Czy jest to przynajmniej możliwe w teorii? Czy też zrzut sterty traci pewne informacje o obiektach, tak że nie można ich odtworzyć.

0
Michael Hermenault 18 grudzień 2019, 02:28

1 odpowiedź

Gdybym dobrze zrozumiał twoje pytanie, krótka odpowiedź brzmiałaby nie. Możesz jednak przeanalizować plik .hprof za pomocą wtyczki Eclipse o nazwie: Memory Analyzer, aby lepiej zrozumieć, co się dzieje w tym momencie.

0
Marius Jaraminas 18 grudzień 2019, 02:35
Jeśli odpowiedź brzmi „nie”, interesuje mnie, dlaczego. Czy zrzut sterty nie przechowuje wszystkich informacji niezbędnych do odtworzenia danego obiektu? Zaktualizowałem pytanie, aby to dodać.
 – 
Michael Hermenault
18 grudzień 2019, 09:11
Informacje są dostępne, ale niekoniecznie wystarczające do przywrócenia obiektu. To tak, jakby deserializować obiekt, który nigdy nie powiedział, że jest możliwy do serializacji. Rozważ znaczenie adresów pamięci, deskryptorów plików, kodów skrótu tożsamości itp. oraz wszelkich obiektów zawierających obiekt zawierający takie informacje, których nie można przywrócić.
 – 
Holger
10 styczeń 2020, 19:06