a few weeks ago I posted the same problem with struts2 concerning poor OGNL performance. Absolutely none of the advice given has helped. The Application I wrote in Struts2 needs to handle and render large lists displayed in rather complex tables. I have a similar application with similarly complex data written in Struts 1 which is way faster. I did all the performance tweaks, using latest versions of ognl, freemarker and so on and so forth. I just sadly boils down to one "fact" that OGNL just isn't suitable to write high performance web-applications required to render and handle large amounts of complex data per request.
I'm using EJB 2.1, JBOSS 4.2.2 with tomcat 5.5, JDK 1.6.0_07 Struts2 on a Windows 2003 Server machine with 8 GB Ram and 4 Opteron 3.6 GHz CPUs with round about 60-80% CPU utilization while rendering JSPs with OGNL. The sad end of the story was, I had to revert to Struts1 --- Joe On Sat, Sep 20, 2008 at 8:51 PM, Leonidas Papadakis <[EMAIL PROTECTED]> wrote: > Have you deployed your application on another platform ? > > Is it the same on your development system ? > > Are you calling the same action every time and what is this action doing ? > > > sajanv007 wrote: >> >> sOME MORE TRACES >> CPU SAMPLES BEGIN (total = 8868) Sat Sep 6 12:29:17 2008 >> rank self accum count trace method >> 1 20.44% 20.44% 1813 303423 ognl.SimpleNode.evaluateGetValueBody >> 2 12.55% 33.00% 1113 300397 java.net.PlainSocketImpl.socketAccept >> 3 8.37% 41.36% 742 300856 java.net.SocketInputStream.socketRead0 >> 4 7.81% 49.18% 693 303426 ognl.Ognl.getValue >> 5 4.52% 53.70% 401 303853 ognl.ASTProperty.getValueBody >> 6 4.18% 57.88% 371 302117 java.net.PlainDatagramSocketImpl.receive0 >> 7 4.18% 62.07% 371 301880 java.net.SocketInputStream.socketRead0 >> >> sajanv007 wrote: >> >>> >>> These are HProf results >>> >>> CPU SAMPLES BEGIN (total = 3267) Sat Sep 6 12:27:45 2008 >>> rank self accum count trace method >>> 1 15.70% 15.70% 513 300397 java.net.PlainSocketImpl.socketAccept >>> 2 10.47% 26.17% 342 300856 java.net.SocketInputStream.socketRead0 >>> 3 5.23% 31.40% 171 302117 >>> java.net.PlainDatagramSocketImpl.receive0 >>> 4 5.23% 36.64% 171 301880 java.net.SocketInputStream.socketRead0 >>> 5 5.23% 41.87% 171 301035 >>> weblogic.socket.DevPollSocketMuxer.doPoll >>> 6 3.28% 45.15% 107 303426 ognl.Ognl.getValue >>> 7 2.48% 47.63% 81 301738 sun.reflect.Reflection.getCallerClass >>> 8 1.99% 49.62% 65 300923 java.lang.String.intern >>> 9 1.87% 51.48% 61 303423 ognl.SimpleNode.evaluateGetValueBody >>> 10 1.81% 53.29% 59 300505 java.util.zip.ZipFile.getEntry >>> 11 1.56% 54.85% 51 301639 java.lang.Throwable.fillInStackTrace >>> 12 1.41% 56.26% 46 303434 java.util.ResourceBundle.getObject >>> 13 1.16% 57.42% 38 301739 java.lang.Object.clone >>> 14 1.13% 58.56% 37 303267 ognl.OgnlRuntime.getHandler >>> 15 1.01% 59.57% 33 301953 java.lang.Object.hashCode >>> >>> >>> Al Sutton wrote: >>> >>>> >>>> Do the ideas listed at >>>> >>>> http://java.sun.com/developer/technicalArticles/Programming/HPROF.html >>>> >>>> shed any light on it? >>>> >>>> sajanv007 wrote: >>>> >>>>> >>>>> I am using the latest Freemarker version 2.3.13 and Spring 2.5 OGNL >>>>> 2.7.2 >>>>> with Javaassist . >>>>> >>>>> Al Sutton wrote: >>>>> >>>>>> >>>>>> Replace your freemarker lib with 2.3.13 or later. Prior releases had a >>>>>> concurrency performance issue. >>>>>> >>>>>> Al. >>>>>> >>>>>> sajanv007 wrote: >>>>>> >>>>>>> >>>>>>> It is a solaris box and has 16 GB memory and 4 CPU it is high end >>>>>>> server >>>>>>> class machine . Some how I suspect it is the OGNL or Freemarker >>>>>>> rendering >>>>>>> issue . >>>>>>> >>>>>>> Jim Kiley wrote: >>>>>>> >>>>>>>> >>>>>>>> What kind of server are you using here, how much memory, what CPU -- >>>>>>>> when >>>>>>>> we >>>>>>>> are getting to CPU utilization, all of these issues are relevant. >>>>>>>> >>>>>>>> On Thu, Sep 18, 2008 at 3:43 PM, sajanv007 <[EMAIL PROTECTED]> >>>>>>>> wrote: >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> I have tried all the tuning parameters mentioned in the link >>>>>>>>> somehow >>>>>>>>> CPU >>>>>>>>> utilization is always 80% ,I observed that it takes tags are >>>>>>>>> rendered >>>>>>>>> from >>>>>>>>> free marker cache but still the cpu 80-90% . >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> >>>>>>>>> Sajan >>>>>>>>> >>>>>>>>> >>>>>>>>> Nils-Helge Garli wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Maybe this can help: >>>>>>>>>> http://struts.apache.org/2.0.11.2/docs/performance-tuning.html >>>>>>>>>> >>>>>>>>>> Nils-H >>>>>>>>>> >>>>>>>>>> On Thu, Sep 18, 2008 at 9:11 PM, sajanv007 >>>>>>>>>> <[EMAIL PROTECTED]> >>>>>>>>>> >>>>>>>>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> There is huge performance issue and CPU hogging with Struts2 tag >>>>>>>>>>> , >>>>>>>>>>> >>>>>>>>> >>>>>>>>> this >>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> was >>>>>>>>>>> observed while rendering JSP. These are some performance results >>>>>>>>>>> >>>>>>>>> >>>>>>>>> obtained >>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Strut 2 Tag - With all performance tuning applied as per Struts 2 >>>>>>>>>>> documentation - Freemarker caching etc... >>>>>>>>>>> Load Runner Tool >>>>>>>>>>> 40 users >>>>>>>>>>> 900 hits per second >>>>>>>>>>> 10 transaction per second >>>>>>>>>>> >>>>>>>>>>> Results >>>>>>>>>>> CPU utilization 90% >>>>>>>>>>> Response 3.5 sec >>>>>>>>>>> >>>>>>>>>>> Replaced some of Struts2 Tag , with Custom JSP Tags like >>>>>>>>>>> (s:label, >>>>>>>>>>> s:text,s:textfield,s:hidden,s:param) >>>>>>>>>>> 40 users >>>>>>>>>>> 900 hits per second >>>>>>>>>>> 15 transaction per second >>>>>>>>>>> >>>>>>>>>>> Results >>>>>>>>>>> CPU utilization 70% >>>>>>>>>>> Response 2.0 sec >>>>>>>>>>> >>>>>>>>>>> Some where down the line Struts 2 tag are very cpu hungry , to >>>>>>>>>>> people >>>>>>>>>>> >>>>>>>>> >>>>>>>>> to >>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> adopt to strut2 framework cpu utilization should be optimized . >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Did anybody come across on how to over come this problem >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> View this message in context: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> http://www.nabble.com/Performance-and-High-CPU-utilization-tp19559123p19559123.html >>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Sent from the Struts - User mailing list archive at Nabble.com. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> --------------------------------------------------------------------- >>>>>>>>>>> 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] >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> View this message in context: >>>>>>>>> >>>>>>>>> http://www.nabble.com/Performance-and-High-CPU-utilization-tp19559123p19560223.html >>>>>>>>> Sent from the Struts - User mailing list archive at Nabble.com. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> --------------------------------------------------------------------- >>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Jim Kiley >>>>>>>> Technical Consultant | Summa >>>>>>>> [p] 412.258.3346 [m] 412.445.1729 >>>>>>>> http://www.summa-tech.com >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> 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] >>>> >>>> >>>> >>>> >>> >>> >> >> > > > --------------------------------------------------------------------- > 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]