I've been trying to migrate an application recently from ww1 to ww2 and
have had some pretty difficult times. Conversion issues aside, though,
I'm extremely concerned with what I see with the performance. ww2 seems
to perform about 5 to 10 times worse than my equivalent application in
ww1. I'm pretty positive that this isn't a problem with xwork, since my
business layer uses xwork as an underlying command structure (and xwork
is fantastic; the framework I have set up with it is going to save me a
ton of maintenance headaches). The xwork business commands execute
extremely quickly. Prior to the upgrade, I had xwork running underneath
ww1, with ww1 servlets and actions.

Most of the problem appears to be in the render cycle. I'm using
velocity as my rendering engine (except for sitemesh decorators and a
login.jsp). I'm not using the ww tags or their velocity equivalents
because I have a custom page construction framework. Basically, each
action sticks a "page" object onto the stack that contains information
about page sections and controls. There are a lot of calls to the old
$webwork utility on the ww1 velocity context, especially for bean
creation and "$webwork.evaluate" calls. Under ww1, I get pretty fast
response times. For a list page with about 20 items, I get the list in
anywhere between 200 and 400 ms. With a constrained list, it's more like
30 - 70 ms (for a list of about 5 items). For a detail page with about
10 fields, I can usually get a render in about 20 - 30 ms. That's only
10 ms longer than the underlying framework is taking to load the data
from the database. This is all on a dev machine running a local tomcat
server, so I'm pretty happy with this performance.

With ww2, the numbers get a lot worse. List renderings are anywhere from
600 - 1100 ms for the large list, 400 - 600 ms for the small list.
Detail pages are rendering in about 70 - 110 ms, though sometimes higher
(never lower). Also, strangely, my pages have a decorator on the side
that shows the current user, using 
                        <ww:property value="userInfo.firstName"/>
                        &nbsp;<ww:property value="userInfo.lastName"/>
Every third time the page is loaded, these show up as "null",
inexplicably. I don't know why this would be happening, though I suppose
it has something to do with things getting tied up inside the render
cycle. I also get socket errors every fourth or fifth page load, if I
keep loading in quick succession.

I realize this evidence is anecdotal but I was wondering if anyone else
has had similar results with ww2, or if there's something I'm doing
completely wrong with the way I'm using velocity in ww2. My previous
macros were updated to use the value stack and I can include the old and
new versions, if necessary. I do know that it used to work fine before.
I'm itching to move to ww2 because it does so many things so much more
elegantly (things I used to have to do a lot of custom coding around)
and I'm already using xwork anyway.



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to