Hi, I'm working on an application that's using Pax Wicket (version 1.1.0). Because the application is using more memory than expected I'm running some tests and analysing heap dumps for a few days now.
While analysing the heap of my "weekend test" I've found this at the top of the Pax Wicket bundle class loader at the top of the dominator tree, seems to me that the PropertyResolver is creating new DefaultClassCache instances all the time but I don't understand why. Below I've pasted a few selections from Eclipse Memory Analyzer: Dominator tree: Class Name | Shallow Heap | Retained Heap | Percentage ----------------------------------------------------------------------------------------------------------------------------------------------------- org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 @ 0xc123ee58 | 88 | 643,602,288 | 89.39% |- java.util.Vector @ 0xc1252208 | 32 | 643,566,800 | 89.38% | '- java.lang.Object[1280] @ 0xc2445ee8 | 5,136 | 643,566,768 | 89.38% | |- class org.apache.wicket.util.lang.PropertyResolver @ 0xb9b5d330 | 32 | 643,420,472 | 89.36% * | | '- java.util.concurrent.ConcurrentHashMap @ 0xc2962bf8 | 48 | 643,420,440 | 89.36% | | '- java.util.concurrent.ConcurrentHashMap$Segment[16] @ 0xc2962c28 | 80 | 643,420,392 | 89.36% | | |- java.util.concurrent.ConcurrentHashMap$Segment @ 0xc2963098 | 40 | 643,418,872 | 89.36% ** | | | |- java.util.concurrent.ConcurrentHashMap$HashEntry[262144] @ 0xd8674190 | 1,048,592 | 643,418,768 | 89.36% | | | | '- java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea9687a8 | 32 | 642,370,176 | 89.22% | | | | |- java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea967a28 | 32 | 642,366,720 | 89.22% | | | | | |- java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea966ca8 | 32 | 642,363,264 | 89.22% *** | | | | | |- org.apache.wicket.util.lang.PropertyResolver$DefaultClassCache @ 0xea967398| 16 | 3,424 | 0.00% | | | | | '- Total: 2 entries | | | | | | | |- org.apache.wicket.util.lang.PropertyResolver$DefaultClassCache @ 0xea968118 | 16 | 3,424 | 0.00% | | | | '- Total: 2 entries | | | ----------------------------------------------------------------------------------------------------------------------------------------------------- * class org.apache.wicket.util.lang.PropertyResolver @ 0xb9b5d330 [statics]: Type|Name |Value --------------------------------------------------------------------------------------------- ref |SET |set ref |IS |is ref |GET |get ref |applicationToClassesToGetAndSetters|java.util.concurrent.ConcurrentHashMap @ 0xc2962bf8 int |RESOLVE_CLASS |2 int |CREATE_NEW_VALUE |1 int |RETURN_NULL |0 ref |log |org.ops4j.pax.logging.slf4j.Slf4jLogger @ 0xc2972ba0 --------------------------------------------------------------------------------------------- ** java.util.concurrent.ConcurrentHashMap$HashEntry[262144] @ 0xd8674190 [attributes] Type |Name |Value -------------------------------------------------------------------------------------- float|loadFactor|0.75 ref |table |java.util.concurrent.ConcurrentHashMap$HashEntry[262144] @ 0xd8674190 int |threshold |196608 int |modCount |185871 int |count |185871 ref |sync |java.util.concurrent.locks.ReentrantLock$NonfairSync @ 0xc29630c0 -------------------------------------------------------------------------------------- *** java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea966ca8 [attributes] Type|Name |Value --------------------------------------------------------------------------------------------------- ref |next |java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea965f28 ref |value|org.apache.wicket.util.lang.PropertyResolver$DefaultClassCache @ 0xea966618 int |hash |1234246985 ref |key |nl.ditp.fabuland.core.internal.WicketApplication$$EnhancerByCGLIB$$4188d86a @ 0xc22bcc88 --------------------------------------------------------------------------------------------------- Is this caused by a coding error in the application or a bug in Wicket / Pax Wicket? Thanks, Bram Pouwelse _______________________________________________ general mailing list general@lists.ops4j.org http://lists.ops4j.org/mailman/listinfo/general