Community
Participate
Working Groups
3.2 - I20060505-1306 I am running with -Xmx512M on the command line; and noticed the heap size monitor to say 493M of 512M allocated, which is way more than in average for my self-hosting workspace (usually cruising at 240M). Using yourkit 5.5, I got a memory dump, which shows 50M are held by the JUnit history. This is not a leak per se, since I flushed history and the memory got claimed back correctly (still 50M for junit history is huge... entire JavaModel only takes 17M).
I had no terminated launch left in debugger.
Dump is too big to attach. Sent it to Martin (62M compressed).
Full model size is 46.6. The trace contains 12 history entries with an average of 5500 test cases each. -> total of 66'000 test cases held for 26.MB Overhead per test case is only small, main part are strings for the name and strings for the stacktraces. Each history entry keeps a hash lookup to all entries as well as a representation as tree. The arrays for these take the rest of the memory. As the biggest amount of memory is used in string, the solution would be to persist history entries when they are not visible and not running. We have to tackle that after 3.2.
I would imagine retaining only fine grain data of failures. The rest doesn't reall y matter (mostly the suite name). Assuming there are little failures in general, it should reduce the footprint.
This one still appears to be a big memory consumer. Somewhat like a leak in essence. Can we do something for 3.3, before it gets too late ?
I'm working on this, but unfortunately the implementation was not stable enough to be released for M6.
Fixed in HEAD. Test runs that are not active and that are not shown in a JUnit view are now swapped out to disk.