I grabbed a copy of trunk and was not able to reproduce the OOM. This is on my OSX 10.6 box using 64 bit Java 6. I haven't set up yourkit yet, but I believe what is happening is that I'm causing the memory usage for a bunch of the classes to get bigger by calling the generics reflection methods. The sun jvm lazy loads the generic objects the first time you request them by parsing the signature of the class/method/constrictor.
To fully support generics I end up calling one of the generics methods on every page, service and interface used by a page or interface. There is probably some optimization that can be done on my end, but I think it'd be thin. I believe the problem is partially the 64 bit jvm which uses more memory to store references (http://wikis.sun.com/display/HotSpotInternals/CompressedOops) but I haven't played with the jvm settings to see if it helps. I ran the tests successfully with a 32 bit java 5 (and discovered a couple java 6 dependencies in my stuff) So, what does Hudson run the tests in? Should we consider adding jvm memory stuff to the docs? Currently the tests all run under the same jvm instance. I believe this may end up accumulating copies of classes in permgen since multiple registries/apps are fired up. Should the tests fork a new -- Josh --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
