I feel there are just too many factors involved, to predict reliably before the actual app is written. Only a rough idea is possible.
I mean, the yet-to-be-written final app's logic/design may not be optimum and result in performance issues.
My approach would be to write a simulator prototype application that does some of the heavy tasks the actual app would eventually do, deploy it and then use something like JMeter tool to exercise requests. Assume that the actual app will make it worse by some factor, say 20%, and measure things like CPU usage, memory and response times. If some bottlenecks are detected, tune Tomcat resource parameters (threads, connections, etc) in server.xml, or even OS parameters. Also configure Tomcat to use APR library.
Some guidelines here.
mark reyes wrote:I know, Ajax calls increases the HTTP traffic.
This is probably true, but keep in mind that the more the app relies on AJAX calls, the less it relies on complete pages being reloaded. So an increase of calls in one place leads to a decrease elsewhere. Plus, the amount of data being generated and transferred for AJAX responses is generally less than that generated for full pages. So the fact that an app uses AJAX heavily does not necessarily mean it performs worse.
This is not simple if you want to exercise everything and not just do simple gets. You could write a script - possibly in xml - to define a sequence of user requests and catch the execution time, error code returns, etc.
A firefox plugin that catches all the requests and responses of a normal user session would be real handy.
William Brogden wrote:A firefox plugin that catches all the requests and responses of a normal user session would be real handy.
It's called "LiveHTTPHeaders" :-)
Sources may include data from the Fakebook Research Foundation with support from Gargle University