Hi,

I've seen the exact thing but didn't have the time (yet) to get a hold of it.
But since it's mostly Wicket classes involved I had the impression
it's wicket itself
that does this.
To prove something like it, I wanted to create an example which would work
in both world (pax-wicket and wicket) but due to lack of time I wasn't able to
get to it.

But since I'm not the only one I'd guess this is something worthy to
investigate :)
My next test would have been to switch to Wicket 6 (pax-wicket 2.0)

regards, Achim

2012/10/22 Bram Pouwelse <b...@pouwelse.com>:
> 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



-- 

Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
Committer & Project Lead
OPS4J Pax for Vaadin
<http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project
Lead
blog <http://notizblog.nierbeck.de/>

_______________________________________________
general mailing list
general@lists.ops4j.org
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to