You may want to have a look at using a bit better profiler that can tell you what is instantiating the freemarker classes.

I've noticed Code Gear (ex Borland) have released a free version of JBuilder with OptimizeIt built in:

Have a look at http://www.codegear.com/eclipse_supercharged/index.html

Let us know if you get any results

HTH
Oz

 http://www.codegear.com/eclipse_supercharged/index.html
On 20/06/2007, at 4:00 AM, Matt Filion wrote:

Without knowing much more about your application I dont know if we are
going to be of much more help. Especially since most people here already have struts 2 apps running and dont have this issue. I have a couple of
resources that might help you though while you dig through this issue.

You can see some of the source on the objects referanced in your memory
trace. Seeing the source of other objects is some times helpful.
http://www.koders.com/?s=freemarker.ext.util.ModelFactory&la=Java

It looks like you already have this one cause you mention addressing a
couple of the items. The last one mentions using velocity tags over struts tags not sure if this would be your issue, but might be worth looking at.
http://struts.apache.org/2.x/docs/performance-tuning.html

Matt Filion
CSC - GTS --> Raytheon - ISF
[EMAIL PROTECTED]


---------------------------------------------------------------------- ---------------------------------------------------------------------- ------------------------------------ This is a PRIVATE message. If you are not the intended recipient, please delete without copying and kindly advise us by e-mail of the mistake in delivery. NOTE: Regardless of content, this e-mail shall not operate to
bind CSC to any order or other contract unless pursuant to explicit
written agreement or government initiative expressly permitting the use of
e-mail for such purpose.
---------------------------------------------------------------------- ---------------------------------------------------------------------- ------------------------------------




"Ing. Andrea Vettori" <[EMAIL PROTECTED]>
06/19/2007 02:19 AM
Please respond to
"Struts Users Mailing List" <user@struts.apache.org>


To
"Struts Users Mailing List" <user@struts.apache.org>
cc

Subject
Re: [S2] App generate lot (2GB) of garbage!






Anyone ?

Anyone knows who's calling freemarker.ext.beans methods ?


Il giorno 17/giu/07, alle ore 19:08, Ing. Andrea Vettori ha scritto:

Hi,
I've a struts 2.0.8 app that runs on Linux and JBoss 4.0.5. I'ts an
e-commerce site.

I have the following problem.
The app seems to generate lot of garbage in RAM (young gen) that
the gc correctly collects.
But when there is more than a few users on the site, that amount of
garbage is generated about every 10 seconds or less depending on
the number of users. This cause a lot of cpu usage...

Tracking the memory usage with the hprof agent I found that a lot
of memory is used by freemarker.* classes on HashMaps.

I have devMode turned off, have the "template" dir on the root of
the war file and I have the freemarker.properties file into the
classes dir inside WEB-INF with template_update_delay=60000.

Any hint on WHY the application is generating such big amount of
garbage ?

Thank you

Here is top memory usage and relative traces :


bytes 192,090,608
obj number: 1,263,754
class: java.util.HashMap$Entry[]

TRACE 352396:
               java.util.HashMap.<init>(HashMap.java:203)
freemarker.ext.beans.BeanModel.<init> (BeanModel.java:117)
freemarker.ext.beans.StringModel.<init>(StringModel.java:90)
freemarker.ext.beans.StringModel$1.create(StringModel.java:75)


bytes: 143,560,048
obj number: 944,474
class: java.util.HashMap$Entry[]

TRACE 352387:
               java.util.HashMap.<init>(HashMap.java:203)
freemarker.ext.beans.BeanModel.<init> (BeanModel.java:117)
freemarker.ext.beans.StringModel.<init>(StringModel.java:90)
freemarker.ext.beans.MapModel.<init>(MapModel.java: 105)


bytes: 141,327,104
obj number: 2,208,236
class: java.util.HashMap

TRACE 352386:
               java.util.AbstractMap.<init>(AbstractMap.java:53)
               java.util.HashMap.<init>(HashMap.java:200)
freemarker.ext.beans.BeanModel.<init> (BeanModel.java:117)
freemarker.ext.beans.StringModel.<init>(StringModel.java:90)



--
Ing. Andrea Vettori
Consulente per l'Information Technology



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
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]

Reply via email to