I just profiled my terrain engine because I noticed regular GCs. The result shows that not my engine caused the leak, jogl leaks memory!
I designed the engine to be 100% GC neutral at runtime (no object allocations/deallocations in the display() codepath) and it works quite well.
Here the test results:
jogl 1.0: no GCs at runtime
nightly build: collection every 3secs, around 5-10Mb collected each collection
I traced it down to com.sun.opengl.impl.GLBufferStateTracker. This class seems to track the states of all VBOs in a Integer Hashmap, which is a nice feature but the autoboxing hell for the VM/GC!
It would be really cool if we would have a switch to disable this memory profiling. (Or perhaps a MemProfiler wrapper like DebugGL)
Note: My engine uses a lot of VBOs
Note2: in near future (OpenGL 3.0) EVERYTHING will be (V)BO driven that would increase amount of glBindBuffer() calls