Hi Hani 

I just let my application run with WW1.4 (CVS 3 feb 04) 
and the problem is exact the same as in WW1.3 with one
difference that not only Query and QuerySegment grow
when using the table tag but now also 
webwork.util.ConcurrentReaderHashMap$Entry grows with
the same amount.

BTW: since I'm into profiling:
I saw that ValueStack$MethodInfo came in in WW1.4.
It's a big (!) memory holder which never gets GC'ed...
Overall it seems to me that WW1.4 uses a lot more memory than
1.3...

see attached reports: both are after GC and using the
application the same.


Cheers
-Paolo

> -----Original Message-----
> From: Hani Suleiman [mailto:[EMAIL PROTECTED]
> Sent: Thursday, February 05, 2004 6:43 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [OS-webwork] WW1.3 Memory Consumption
> 
> 
> Hi Paolo,
> 
> I just tested this and I don't see the behaviour you describe in the 
> current CVS. Can you try webwork 1.4 and see if you still have the 
> leak?
> 
> On Feb 5, 2004, at 11:05 AM, Vedovato Paolo wrote:
> 
> > Ok, I Found some more on this issue.
> >
> > This Query problems occur only when the <ww:table> tag is used.
> >
> > As far as i see in my Profiling Tool the WebTable component
> > tries to do something 'illegal' in the doEndTag.
> >
> > It always tries to find something in this form
> >
> > [EMAIL PROTECTED]
> >
> > and of course this reference changes on each request putting
> > it in the Query Hashtable and so this grows with each
> > request.
> >
> > Any clues about this phenomena?
> >
> > Cheers
> > -Paolo
> >
> >
> >> -----Original Message-----
> >> From: Vedovato Paolo
> >> Sent: Thursday, February 05, 2004 9:53 AM
> >> To: '[EMAIL PROTECTED]'
> >> Subject: RE: [OS-webwork] WW1.3 Memory Consumption
> >>
> >>
> >> Hi Dick
> >>
> >> for my replies see inline.
> >>
> >>> You are right that the Query class contains a cache of all
> >> expressions
> >>> (instances of Query). It is a static HashMap in WW1.3 so it
> >>> is never GC'd as
> >>> you know.
> >>> I can see a couple of cases that would make it grow:
> >>>
> >>> 1. Parameters that are sent in requests are set on actions
> >>> with the help of
> >>> the Query class. If you always have new parameter names, then
> >>> they will
> >>> generate new Query objects that will fill up the cache. So
> >>> for example the
> >>> parameters:
> >>> myaction.action?paramOne=2&otherParam/subProperty=4    this
> >>> would create 2 new Query instances (and 3 QuerySegments I 
> believe).
> >>> Do you have some parameters that have dynamic names?
> >> Do you mean the first request calls 'paramOne=2', after
> >> that the same request calls 'paramTwo=2'?
> >> No, we don't have dynamic names parameters...
> >>
> >>> 2. Some usages of the expand functionality of the expression
> >>> language (when
> >>> you use braces { } ) can give many Query objects. For example
> >>> if you write:
> >>> <ww:property value="{myProp}"/> then myProp is looked up,
> >> and whatever
> >>> String myProp contains is then looked up. This means that if
> >>> myProp contains
> >>> different String values all the time then alot of Query
> >>> instances will be
> >>> created.
> >> The only constructs I find in our application which could match
> >> are the following:
> >>
> >> - the templates checkbox.jsp, password.jsp, text.jsp etc.
> >> - <ww:text name="'{0,date,EEEE, dd.MM.yyyy, HH:mm}'" 
> value0="@today"/>
> >> - <ww:text name="'{0,number,#,##0.00}'" 
> value0="@dep/balance/amount"/>
> >>
> >> Do you see problems with it?
> >>
> >>> You can also try changing the Map to be a WeakHashMap and
> >>> then the Query
> >>> instances could be GC'd. But of course it would be better to
> >>> find the real
> >>> cause of the problem first.
> >> That would be a possibility but as you said we should try 
> to find the
> >> real cause.
> >>
> >> Anyway I would like to thank you for the help!
> >>
> >> Cheers
> >> -Paolo
> >>
> >>
> >> -------------------------------------------------------
> >> The SF.Net email is sponsored by EclipseCon 2004
> >> Premiere Conference on Open Tools Development and Integration
> >> See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
> >> http://www.eclipsecon.org/osdn
> >> _______________________________________________
> >> Opensymphony-webwork mailing list
> >> [EMAIL PROTECTED]
> >> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> >>
> >
> >
> > -------------------------------------------------------
> > The SF.Net email is sponsored by EclipseCon 2004
> > Premiere Conference on Open Tools Development and Integration
> > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
> > http://www.eclipsecon.org/osdn
> > _______________________________________________
> > Opensymphony-webwork mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> >
> 
> 
> 
> -------------------------------------------------------
> The SF.Net email is sponsored by EclipseCon 2004
> Premiere Conference on Open Tools Development and Integration
> See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
> http://www.eclipsecon.org/osdn
> _______________________________________________
> Opensymphony-webwork mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> 

Title: Orion 2.x on localhost Class monitor

Class monitor

Session: Orion 2.x on localhost
Time of export: Friday, February 6, 2004 9:40:31 AM CET
JVM time: 06:04

NameInstance countDifferenceSize
webwork.util.QuerySegment1201028824
webwork.util.Query1032024768
webwork.view.taglib.ui.table.SortFilterModel$Row57009120
webwork.view.taglib.IfTag16506600
webwork.view.taglib.PropertyTag16107728
webwork.view.taglib.ui.table.WebTableColumn6101952
webwork.action.SingleValueMap4901176
webwork.action.factory.SessionMap4901176
webwork.action.factory.ParameterMap4901176
webwork.action.factory.ApplicationMap4901176
webwork.view.taglib.ElseTag4501080
webwork.expr.Token4401760
webwork.view.taglib.IteratorTag4102624
webwork.view.taglib.TextTag3202048
webwork.action.ActionContext310496
webwork.dispatcher.GenericDispatcher$LazyValueHolder290696
webwork.dispatcher.GenericDispatcher2901392
webwork.view.taglib.URLTag2601456
webwork.view.taglib.ParamTag240960
webwork.expr.ParserTokenManager2201232
webwork.util.ServletValueStack220528
webwork.expr.Parser2201232
webwork.view.taglib.IncludeTag2201056
webwork.expr.SimpleCharStream2201408
webwork.view.taglib.ActionTag220880
webwork.view.taglib.BeanTag160640
webwork.view.taglib.ui.table.renderer.DefaultCellRenderer100160
webwork.view.taglib.ui.table.WebTable80832
webwork.view.taglib.ui.table.SortFilterModel80256
webwork.view.taglib.ui.TextFieldTag80832
webwork.view.taglib.iterator.SortIteratorTag70336
webwork.util.SortIteratorFilter70168
webwork.view.taglib.ElseIfTag60240
webwork.view.taglib.PageOutputStream4064
webwork.util.FastByteArrayOutputStream40128
webwork.view.taglib.IteratorStatus$StatusState3048
webwork.view.taglib.ui.TextAreaTag30312
webwork.config.PropertiesConfiguration3048
webwork.view.taglib.PageResponse2064
webwork.action.factory.CommandActionFactoryProxy2032
webwork.util.editor.IntegerEditor2048
webwork.util.Counter2096
webwork.action.factory.ParametersActionFactoryProxy1016
webwork.config.DelegatingConfiguration1016
webwork.action.factory.XMLActionFactoryProxy1016
webwork.action.ActionContext$ActionContextThreadLocal1016
webwork.action.factory.JavaActionFactory1016
webwork.action.factory.PrefixActionFactoryProxy1024
webwork.util.editor.BooleanEditor1024
webwork.action.factory.ChainingActionFactoryProxy1016
webwork.action.factory.DefaultActionFactory1016
webwork.action.factory.ScriptActionFactoryProxy1016
webwork.dispatcher.ServletDispatcher1016
webwork.dispatcher.ViewActionWrapper1016
webwork.action.factory.AliasingActionFactoryProxy1024
webwork.action.factory.PrepareActionFactoryProxy1016
webwork.action.factory.JspActionFactoryProxy1016
webwork.config.XMLActionConfiguration1032
webwork.dispatcher.ConfigurationViewMapping108
webwork.util.editor.DoubleEditor1024
webwork.view.taglib.ui.PasswordTag10104
webwork.dispatcher.CachingViewMapping1016
webwork.config.DefaultConfiguration1016
webwork.util.ValueStack1016
webwork.action.factory.ContextActionFactoryProxy1016
webwork.dispatcher.DefaultViewMapping1016
Title: Orion 2.x on localhost Class monitor

Class monitor

Session: Orion 2.x on localhost
Time of export: Friday, February 6, 2004 9:33:33 AM CET
JVM time: 40:11

NameInstance countDifferenceSize
webwork.util.ValueStack$MethodInfo43610104664
webwork.util.QuerySegment1200028800
webwork.util.ConcurrentReaderHashMap$Entry1185028440
webwork.util.Query1019024456
webwork.view.taglib.ui.table.SortFilterModel$Row58409344
webwork.util.SimpleTest195010920
webwork.view.taglib.IfTag14905960
webwork.view.taglib.PropertyTag14006720
webwork.action.factory.ApplicationMap380912
webwork.action.factory.ParameterMap380912
webwork.action.SingleValueMap380912
webwork.action.factory.SessionMap380912
webwork.view.taglib.ElseTag370888
webwork.view.taglib.ui.table.WebTableColumn3601152
webwork.view.taglib.IteratorTag3402176
webwork.view.taglib.TextTag2601664
webwork.action.ActionContext240384
webwork.expr.Token220880
webwork.dispatcher.GenericDispatcher$LazyValueHolder220528
webwork.dispatcher.GenericDispatcher2201056
webwork.view.taglib.ParamTag180720
webwork.view.taglib.IncludeTag170816
webwork.util.ServletValueStack170408
webwork.view.taglib.ActionTag170680
webwork.view.taglib.URLTag150840
webwork.action.factory.ParameterMap$1110264
webwork.expr.ParserTokenManager110616
webwork.expr.Parser110616
webwork.view.taglib.BeanTag110440
webwork.expr.SimpleCharStream110704
webwork.view.taglib.ui.TextFieldTag80832
webwork.view.taglib.iterator.SortIteratorTag50240
webwork.util.SortIteratorFilter50120
webwork.view.taglib.ElseIfTag50200
webwork.util.FastByteArrayOutputStream40128
webwork.view.taglib.ui.table.WebTable40416
webwork.view.taglib.ui.table.SortFilterModel40128
webwork.view.taglib.ui.table.renderer.DefaultCellRenderer4064
webwork.view.taglib.PageOutputStream4064
webwork.view.taglib.IteratorStatus$StatusState3048
webwork.view.taglib.ui.TextAreaTag30312
webwork.dispatcher.ViewActionWrapper3048
webwork.config.PropertiesConfiguration3048
webwork.action.factory.CommandActionFactoryProxy2032
webwork.util.ConcurrentReaderHashMap20112
webwork.util.ConcurrentReaderHashMap$BarrierLock2016
webwork.view.taglib.PageResponse2064
webwork.config.DefaultConfiguration1016
webwork.action.factory.XMLActionFactoryProxy1016
webwork.action.factory.JavaActionFactory1016
webwork.dispatcher.DynamicViewMapping1032
webwork.config.XMLActionConfiguration1032
webwork.action.factory.PrefixActionFactoryProxy1024
webwork.util.editor.BooleanEditor1024
webwork.action.factory.ContextActionFactoryProxy1016
webwork.action.factory.ChainingActionFactoryProxy1016
webwork.action.ActionContext$ActionContextThreadLocal1016
webwork.config.DelegatingConfiguration1016
webwork.util.editor.IntegerEditor1024
webwork.action.factory.JspActionFactoryProxy1016
webwork.dispatcher.ServletDispatcher1024
webwork.action.factory.ScriptActionFactoryProxy1016
webwork.dispatcher.DefaultViewMapping1016
webwork.action.factory.ParametersActionFactoryProxy1016
webwork.action.factory.DefaultActionFactory1016
webwork.action.factory.AliasingActionFactoryProxy1024
webwork.util.editor.DoubleEditor1024
webwork.action.factory.PrepareActionFactoryProxy1016
webwork.util.Counter1048
webwork.dispatcher.CachingViewMapping1024
webwork.view.taglib.ui.PasswordTag10104
webwork.dispatcher.ConfigurationViewMapping108
webwork.util.editor.IntegerObjectEditor1024

Reply via email to