Your trace is at too higher level. Can you put a fully expanded copy of your trace that goes down to the leaf methods.
At the moment your trace just shows that somewhere in the call stack under some collection of conditions which are unknown to us the method and all it's calls are generating lots of objects. What I'd like to see is the tree expanded so I can see which methods are causing the gc'ed objects to be created, because without your whole application running it's extremely difficult to see the execution paths used to and thus determine which methods are causing the problem. findValue in itself does not create objects, so please post the fully expanded tree. -----Original Message----- From: Ing. Andrea Vettori [mailto:[EMAIL PROTECTED] Sent: 25 June 2007 08:34 To: Struts Users Mailing List Subject: Re: [S2] App generate lot (2GB) of garbage! Hi, I've run a profile with yourkit (nice!) on my development platform. Here is the most important evidence. I've opened three product listings and a couple of product sheet in my site. Total garbage collected : 234 MB. Of these 234 MB, 64 are produced by org.jboss.remoting.transport.socket.ServerThread.run() so they are related to communication between the business layer and the presentation layer. Most of the other (156MB) are produced by com.opensymphony.xwork2.DefaultActionInvocation.invoke() so it's something related to struts. Going down the stack trace through interceptors the "last class" is org.apache.struts2.dispatcher.StrutsResultSupport.execute (ActionInvocation) that has 146MB of generated garbage. Now the interesting part : These 146MB are divided into : 34MB generated by freemarker.template.Template.process(Object, Writer) 22MB generated by com.opensymphony.xwork2.util.OgnlValueStack.findValue(String) 10MB generated by org.eclipse.jdt.internal.compiler.Compiler.compile (ICompilationUnit[]) 7MB generated by freemarker.template.Configuration.getTemplate(String) 6MB generated by org.eclipse.jdt.internal.compiler.Compiler.<init> (INameEnvironment, IErrorHandlingPolicy, Map, ICompilerRequestor, IProblemFactory, boolean) and a few other with less then 3MB each. You can find the complete trace on http://www.andreavettori.com/trace/ trace1.html. Do they seems normal numbers ??? I also don't understand if the difference between 146 and about 90 (=34+22+10+7+6+other small) is produced by org.apache.struts2.dispatcher.StrutsResultSupport.execute (ActionInvocation). That's over 50MB! Now if someone think that this can help solve my problem and understand where is produced this garbage I can run the same profile on the production server, maybe for a couple of minutes. I'm also really interested into knowing if you guys have ever checked gc collections on your applications... I don't think I'm the only one that writes "garbage producer applications" :). Thank you and please don't leave me alone with this problem! -- Ing. Andrea Vettori Consulente per l'Information Technology --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]