Bill Barker wrote: >> I saw a significant, measureable improvement in performance when I > upgraded >> our production systems to Jasper 2 with tag pooling from Jasper 1 >> without. CPU load on the production server dropped around 30%, request >> latency was >> reduced significantly, etc. The app server handles 30k-100K requests per > day. >> This is on a Sun dual CPU E250, 768MB of Ram, that is run solely as an >> app > server. >> OS is Solaris 8, JVM is 1.3.1 using HotSpot server, and I have spent time > tuning >> the JVM stack and GC java startup args. >> >> Tag pooling elminates significant amounts of GC. That is where the real >> benefit of tag pooling comes from. With tag pooing the frequency and >> length of GC's are reduced a great deal. >> > > I saw just the opposite. Jasper2 with tag-pooling was a real dog (the > time spent in synchronized methods to maintain the pool completely swamped > any > benefit from GC). After patching my copy to make don't-tag-pool the > default (since there isn't any way to do this in the config :( ), then > Tomcat 4.1/Jasper2 was about 60% faster that Tomcat 3.3/Jasper1 when I > 'ab' benchmarked it against one of my more complex pages.
Yes, I've seen similar results - tag libs are very tricky from a performance point of view. The problem is that jasper does a lot of synchronization - it is a problem with the tagpool implementation, not an indication that creating tons of garbage is good. You can make the whole tag reuse be sync-free, and have the entire page served without any allocation - just create the tags once, at init time - and keep them in a per/thread data. Costin -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>