Open Fnck opened 5 years ago
看了下源碼, com.github.ltsopensource.tasktracker.runner.plug.PlugManager#unstall 這個方法只是將新增的classloader中對jar包的句柄關閉,因此可以將jar刪除,但是已加載的字節無法壓縮,由於parent\sub classloader的關係存在,gc也無法回收這部分代碼,會造成memory leak 建議 將sub classloader的parent字段用反射方式置爲null,下次gc會回收掉
看了下源碼, com.github.ltsopensource.tasktracker.runner.plug.PlugManager#unstall 這個方法只是將新增的classloader中對jar包的句柄關閉,因此可以將jar刪除,但是已加載的字節無法壓縮,由於parent\sub classloader的關係存在,gc也無法回收這部分代碼,會造成memory leak 建議 將sub classloader的parent字段用反射方式置爲null,下次gc會回收掉