BakermanLP / ModpackProjectRETv7

ModpackProjectRETv7
2 stars 2 forks source link

Mögliches Memory Leak in GregTechMod #206

Open BakermanLP opened 9 years ago

BakermanLP commented 9 years ago

Nach den Messungen am GregTechMod von @GregoriusT scheint es dort Probleme zu geben:

Hier die Messungen: http://solder.bakermanlp.de/15minuten.nps und der HeapDump: http://solder.bakermanlp.de/Livesystem.hprof.gz

Grayal meinte folgendes zu sehen: http://www.projectret.de/media/kunena/attachments/197/dump.jpg

Greg baut hier eine ArrayList, was ein dynamisches Array-Object darstellt. Die einzelnen Eintäge sind selbst größere Objekte und beinhalten wohl noch Querverweise. Dadurch ist die Struktur stark vernetzt. Das Entfernen einzelner Objekte könnte nicht vom Garbage Collector erfasst werden, weil die Querverbindungen das verhindern. Bei so vielen Einträgen wird hier immer sauber eingefügt, aber nicht entfernt. Man muß auch wissen, das die ArrayList immer um 50% wächst und dabei das gesammte innere Array kopiert werden muß.

GregoriusT commented 9 years ago

Ach du heilige scheiße, daran hatte ich ja gar nicht gedacht. Die werde ich sofort durch weak references ersetzen um das zu lösen. Hätte ich das bloß vorher gemerkt. Danke für den Report.

Am 23.01.15 schrieb BakermanLP notifications@github.com:

Nach den Messungen am GregTechMod von @GregoriusT scheint es dort Probleme zu geben:

Hier die Messungen: http://solder.bakermanlp.de/15minuten.nps und der HeapDump: http://solder.bakermanlp.de/Livesystem.hprof.gz

Grayal meinte folgendes zu sehen: http://www.projectret.de/media/kunena/attachments/197/dump.jpg

Greg baut hier eine ArrayList, was ein dynamisches Array-Object darstellt. Die einzelnen Eintäge sind selbst größere Objekte und beinhalten wohl noch Querverweise. Dadurch ist die Struktur stark vernetzt. Das Entfernen einzelner Objekte könnte nicht vom Garbage Collector erfasst werden, weil die Querverbindungen das verhindern. Bei so vielen Einträgen wird hier immer sauber eingefügt, aber nicht entfernt. Man muß auch wissen, das die ArrayList immer um 50% wächst und dabei das gesammte innere Array kopiert werden muß.


Reply to this email directly or view it on GitHub: https://github.com/BakermanLP/ModpackProjectRETv7/issues/206

BakermanLP commented 9 years ago

Danke schon mal im voraus fürs fixen.