You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "sajan (JIRA)" <ji...@apache.org> on 2008/09/18 20:59:25 UTC

[jira] Created: (WW-2808) Performance issue Struts 2 Tag

Performance issue Struts 2 Tag
------------------------------

                 Key: WW-2808
                 URL: https://issues.apache.org/struts/browse/WW-2808
             Project: Struts 2
          Issue Type: Improvement
          Components: Value Stack
    Affects Versions: 2.0.11.2
         Environment: Solaris , Weblogic 9.2 MP 1 ,Sun One Web Server 6.5
Strut2 , Spring 2.5 and Sitemesh 
            Reporter: sajan
            Priority: Critical


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 .





-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WW-2808) Performance issue Struts 2 Tag

Posted by "Philip Luppens (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/struts/browse/WW-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44754#action_44754 ] 

Philip Luppens commented on WW-2808:
------------------------------------

Ok, I found some spare time to try the new java templates.
I used both a 2 and a 14 ui tag jsp page consisting of simple textfields with a simple value from a javabean and dynamic label from a resourcebundle.

Standard tomcat 6.0.14, "-server -Xmx512M -Xms512M" jvm arguments, 10.000 requests, 40 concurrent users. Simple actions, no database, Spring, Sitemesh or anything.

- xhtml: 360req/s (2 tags), 75req/s (14 tags)
- simple (freemarker): 410req/s (2 tags), 100req/s (14 tags)
- simple (java): 700req/s (2 tags), 260req/s (14 tags)

So for a complex xhtml page, I would estimate we'd see 3x speedup if we could create an xhtml/java theme. Seems worth a shot.

> Performance issue Struts 2 Tag
> ------------------------------
>
>                 Key: WW-2808
>                 URL: https://issues.apache.org/struts/browse/WW-2808
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Value Stack
>    Affects Versions: 2.0.11.2
>         Environment: Solaris , Weblogic 9.2 MP 1 ,Sun One Web Server 6.5
> Strut2 , Spring 2.5 and Sitemesh 
>            Reporter: sajan
>            Priority: Critical
>
> 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 .

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WW-2808) Performance issue Struts 2 Tag

Posted by "Philip Luppens (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/struts/browse/WW-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44736#action_44736 ] 

Philip Luppens commented on WW-2808:
------------------------------------

I decided to do some quick profiling myself since I have multiple apps hitting production in the following months. I've created a minimalistic setup and put some Apache Bench runs against it. Note: I haven't optimized anything other than the Struts 2 recommendations, standard JVM settings, etc etc .. the point is the relative performance, not the absolute one.

Results are as I remembered from some time ago. If I stick to non-form tags, I can easily get approx. 1000req/s with a concurrency of 40 users (but with maxed CPU), but as soon as there are form tags in play, performance goes down the drain and we end up with a max of 150req/s.

Some quick profiling shows that indeed (esp) Freemarker and OGNL are to blame. Even with full caching enabled for Freemarker, it seems to hit some serious walls here - which kind of surprised me, since I've used Freemarker for a long time (as a template view layer) and never had performance issues with it.

I'm now checking out Don's pure Java tags (he reported improvements up to 4x) to see if we can get a more performant result. Other tag solutions like GXP and Groovy will also be investigated.

> Performance issue Struts 2 Tag
> ------------------------------
>
>                 Key: WW-2808
>                 URL: https://issues.apache.org/struts/browse/WW-2808
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Value Stack
>    Affects Versions: 2.0.11.2
>         Environment: Solaris , Weblogic 9.2 MP 1 ,Sun One Web Server 6.5
> Strut2 , Spring 2.5 and Sitemesh 
>            Reporter: sajan
>            Priority: Critical
>
> 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 .

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WW-2808) Performance issue Struts 2 Tag

Posted by "Paul Johnson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/struts/browse/WW-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44949#action_44949 ] 

Paul Johnson commented on WW-2808:
----------------------------------

Hi Philip,

We have been experiencing very similar slowdowns and interested in your ideas to boost performance.  Any word on the tests you were looking into?

> Performance issue Struts 2 Tag
> ------------------------------
>
>                 Key: WW-2808
>                 URL: https://issues.apache.org/struts/browse/WW-2808
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Value Stack
>    Affects Versions: 2.0.11.2
>         Environment: Solaris , Weblogic 9.2 MP 1 ,Sun One Web Server 6.5
> Strut2 , Spring 2.5 and Sitemesh 
>            Reporter: sajan
>            Assignee: Philip Luppens
>            Priority: Critical
>
> 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 .

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WW-2808) Performance issue Struts 2 Tag

Posted by "Lasantha Pambagoda (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/struts/browse/WW-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46476#action_46476 ] 

Lasantha Pambagoda commented on WW-2808:
----------------------------------------

Dear Philip,

We are also facing very high CPU utilization after we migrated from struts1 to strtus2. Did you find out any solution than migrating back to struts1. 



> Performance issue Struts 2 Tag
> ------------------------------
>
>                 Key: WW-2808
>                 URL: https://issues.apache.org/struts/browse/WW-2808
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Value Stack
>    Affects Versions: 2.0.11.2
>         Environment: Solaris , Weblogic 9.2 MP 1 ,Sun One Web Server 6.5
> Strut2 , Spring 2.5 and Sitemesh 
>            Reporter: sajan
>            Assignee: Philip Luppens
>            Priority: Critical
>
> 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 .

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (WW-2808) Performance issue Struts 2 Tag

Posted by "Philip Luppens (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/struts/browse/WW-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Philip Luppens reassigned WW-2808:
----------------------------------

    Assignee: Philip Luppens

> Performance issue Struts 2 Tag
> ------------------------------
>
>                 Key: WW-2808
>                 URL: https://issues.apache.org/struts/browse/WW-2808
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Value Stack
>    Affects Versions: 2.0.11.2
>         Environment: Solaris , Weblogic 9.2 MP 1 ,Sun One Web Server 6.5
> Strut2 , Spring 2.5 and Sitemesh 
>            Reporter: sajan
>            Assignee: Philip Luppens
>            Priority: Critical
>
> 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 .

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WW-2808) Performance issue Struts 2 Tag

Posted by "Philip Luppens (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/struts/browse/WW-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44787#action_44787 ] 

Philip Luppens commented on WW-2808:
------------------------------------

Ok, some more fun. I think I have found a rather drastic solution, but I'm investigating it a bit further to make sure I don't oversimplify it too much. 

In 2 weeks I should have something for you to test. Let me know if you're interested in evaluating it.

> Performance issue Struts 2 Tag
> ------------------------------
>
>                 Key: WW-2808
>                 URL: https://issues.apache.org/struts/browse/WW-2808
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Value Stack
>    Affects Versions: 2.0.11.2
>         Environment: Solaris , Weblogic 9.2 MP 1 ,Sun One Web Server 6.5
> Strut2 , Spring 2.5 and Sitemesh 
>            Reporter: sajan
>            Assignee: Philip Luppens
>            Priority: Critical
>
> 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 .

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.