-
1. Re: Performence of Seam 2.0 app
nickarls Oct 17, 2007 8:02 AM (in response to mschmidke)"MSchmidke" wrote:
So, my question is: my page isn't really complicated, but what happens when submitting it is stunning. May I have coded something in a roundabout way, or are these numbers normal for a seam application?
* Increase the memory of the server with JVM options
* Check that you don't have a file appender on debug level that spits out those thousands of lines to disk (are there large log files in server/log?) -
2. Re: Performence of Seam 2.0 app
amitev Oct 17, 2007 8:05 AM (in response to mschmidke)There is also a post how to optimize jboss seam http://www.jboss.com/index.html?module=bb&op=viewtopic&t=117190
-
3. Re: Performence of Seam 2.0 app
kukeltje Oct 17, 2007 8:22 AM (in response to mschmidke)Initially setting logging to a lower level might help. At least I've seen that happening
-
4. Re: Performence of Seam 2.0 app
mschmidke Oct 17, 2007 9:32 AM (in response to mschmidke)"MSchmidke" wrote:
I've drastically reduced debugging, not much effect.
.
Oops ... of course "drastically reduced logging" was what I wanted to say .... -
5. Re: Performence of Seam 2.0 app
pmuir Oct 27, 2007 6:33 AM (in response to mschmidke)I created http://wiki.jboss.org/wiki/Wiki.jsp?page=SeamPerformanceFAQ - lets try to put all the performance tips we use there for now, and we'll get a proper area on the community site for this.
-
6. Re: Performence of Seam 2.0 app
mgrouch Oct 28, 2007 12:52 AM (in response to mschmidke)What could help to achieve better performance is variety of stress tests
which could be run as a part of the Seam build.
They would also have helped to understand how ongoing changes to Seam
impact the overall performance.
Each stress test should address a specific aspect of JSF application to be more useful in troubleshooting and profiling.
Here are some ideas about use cases for stress testing
1. Rendering large table - measure response time (stress testing of EL, etc)
large number of columns and rows
2. Submitting big form (stress testing of validation and apply request values phase)
3. Some repeatable evaluations of EL expression
4. Stress test case for injection/outjection
Backing bean with many In/Out annotations
5. Stress test case for annotation reading via Seam APIs
6. Stress testing of AJAX responses when using AJAX4JSF,
(by trying to rerender large area by Ajax)
7. Stress testing of EntityConverter
trying to render many dropdowns -
7. Re: Performence of Seam 2.0 app
mschmidke Oct 30, 2007 7:58 AM (in response to mschmidke)"pete.muir@jboss.org" wrote:
I created http://wiki.jboss.org/wiki/Wiki.jsp?page=SeamPerformanceFAQ - lets try to put all the performance tips we use there for now, and we'll get a proper area on the community site for this.
I've tried all hints ... but with no real success.
Ok, page render time reduces from 4,1s to 1,8s when reducing log level.
But 1,8s is clearly too much for the page I have. There is absolutely no database access, everything cached in stateful bean, and there are no complicated things on the page. The most "complicated" thing on the page is a combobox with about 100 entries, all other of the about 15 components are really simple.
I'm still wondering what the high number of "LongLivedSessionPropagationInterceptor" logs (when I had logging on) tells me.
Do I have any other chance to find the bottleneck? Perhaps I've made clumsy jsf code or so.
Is s:selectItems / s:convertEntity a problem?
Marcus. -
8. Re: Performence of Seam 2.0 app
pmuir Oct 30, 2007 8:17 AM (in response to mschmidke)Can we see the page?
-
9. Re: Performence of Seam 2.0 app
sbublava Oct 30, 2007 8:37 AM (in response to mschmidke)"MSchmidke" wrote:
The most "complicated" thing on the page is a combobox with about 100 entries, all other of the about 15 components are really simple.
...
Is s:selectItems / s:convertEntity a problem?
I just profiled on of my pages today and s:selectItems can indeed be a problem for combo-boxes with many entries.
The code below is from asSelectItems() in UISelectItems.java:for (Object o : iterable) { initVar(o); selectItems.add(new javax.faces.model.SelectItem(o, getLabel() == null ? null : getLabel(), "", getDisabled() == null ? false : getDisabled())); destroyVar(); }
As you can see getLabel() and getDisabled() (usually value expressions) are called twice per entry. I've changed this locally to use local variables and it makes a noticeable difference.
In my case there are even more combo box entries - your mileage may vary ...
Thanks,
Stephan -
10. Re: Performence of Seam 2.0 app
pmuir Oct 30, 2007 8:56 AM (in response to mschmidke)Stephan, please file a jira issue for this.
-
-
12. Re: Performence of Seam 2.0 app
damianharvey Oct 31, 2007 12:25 PM (in response to mschmidke)Stephan,
I'm facing a similar/same problem.
Can you please show some of your code, particularly around how you are using the local variables.
Thanks,
Damian.