Java: visszamaradt referenciák

Igen kellemetlenek tudnak lenni. Azt hiszed, hogy egy objektummal végeztél, közben más objektumok vígan cipelik magukban referenciáját, és ha szép kövér memórifogyasztás van mögötte, az marad is. Nagy és zűrzavaros (bár ez nem feltétel) alkalmazásokban megtalálni őket olyan, mint tűt a szénakazalban.

A jdk eszköztárában van néhány kevéssé ismert darab, mely erre is jó.
Ha sejted, hogy ilyen baja van az alkalmazásodnak, itt egy kis wines script (nem kell röhögni, kényszerűségből vagyok ezen a platformon ;-) segédletnek:


echo off
set APP_PATH=a te elérési utad a java bináris gyökér könyvtárhoz

del heap.bin
"%APP_PATH%"\jps.exe
set /p PID= Melyik PID-et?
"%APP_PATH%"\jmap.exe -dump:format=b,file=heap.bin %PID%
tskill jhat
start "httpd" "%APP_PATH%\jhat.exe" -J-Xmx326m heap.bin
set /p PID= Várj, míg elindul a szerver...
start http://localhost:7000

Továbbfejlesztésre jöhetnek ötletek, bár nem egy prioritás...

Ez a jó leírás volt a forrás.