Testing is allways a good idea!
You can validate that the advice is correct, but testing save time in other ways, so do QA, regresion, unit test, etc.
I now use dbMonster to generate lots of db data and DiselTest to stress test. (linked on baseBeans.com downloads and cheat sheet pages)


As far as benchmarks I did, a PC class machine can do over a thousand concurent users sub second with Struts and a good db (pgSQL I use).
As server class machine can do about 2 thousand concruent users sub second. Ex: NewiSys 2100.
In testing, you can find that Sun boxes are expensive and slow (also www.tpc.org rates fast machines).


One thing Struts helps you with in testing is that it is layerd MVC. So you can just test the speed of your Model only. Or all 3 layers.

Anyway, I have done Struts P&T (performance & tunning) and stored procedures is where it's at .... mostly.

Good luck.

Sundar Narasimhan wrote:

I've been following this thread w/ interest. Thanks for all the posts.



Overall, it sounds like your team is likely to succumb to "premature
optimization" anti-patterns, and totally fail to understand what is really
important about web application design. That's pretty tragic when it
happens, because it's totally needless -- most of the things your team is
stressing over are TOTALLY IRRELEVANT to the end user's perception of
performance of your application. They are worried about the wrong things,
at the wrong time in the development cycle.



Craig -- I think that would be a bit premature. It has been my
experience that a lot of IT shops would like to know what kind of
hardware to buy etc. (i.e. down to the model number of the load
balancer). Personally speaking a lot of it is pre-mature (in fact I've
even had one IT manager proudly point out how he got a "fixed price
for 90 days" extension from a hardware manufacturer -- firmly
forgetting the fact that if you wait 90 days most such hardware will
go down in price :), but .. people need guidelines because the
lead-cycles organizationally on such architectural decisions tends to
be all over the map.




One possible approach would be to build a prototype using Struts, and
exactly the same functionality using whatever design approach your team
thinks will work better. It's pretty much a waste of effort, but some
people won't be convinced any other way.



I think it would be great if people could post their experiences wrt. performance. i.e. at what point did splitting servers, more advanced containers make sense etc.

Personally speaking, I'm going through a major struts based project
myself. Things seem to be working well so far, but I must admit that
now the load is going from the tens to the hundreds of simultaneous
users.. and the latency of some of the accesses are from far away
(separated by multiple routers) I'm wondering what our next steps
ought to be -- if customers start complaining :) Thus far we've been
able to get away with apache + tomcat instances.

(The critical piece of our application is one where users sort some
pretty large datasets.. which can also be modified by other
users.. right now the design reads the db. upon each significant
re-sort operation, but paging thru and editing is done entirely w/ the
data set cached in session).

Benchmarks to me are not only about tee-ing off against
alternatives. Benchmarks often tell me what combinations of
hardware/software people ended up using, and I often find that useful.

My $.02 cents.



-- Vic Cekvenich, Struts Instructor, 1-800-917-JAVA

Advanced <a href ="baseBeans.com">Struts Training</a> and project recovery in North East. Open Source <a href ="baseBeans.com">Content Management</a> basicPortal sofware
Best practice<a href ="baseBeans.com">Struts Support</a> v.1.1 helper ScafflodingXPress





Reply via email to