Generally, the time any web page takes to load can be broken down into
a) Time spent in sending request to server
b) Time spent in
servlet to service the request.. this can be further divided to time taken by database and time taken in buisness logic
c) TIme taken to render the JSP
d) Time taken to send the rendered HTML and static resources back to the client
e) TIme taken by the browser to render the HTML on the browser screen + run initialization javascript
Not sure, which you want to profile. Profiling onLoad will basically do part of e). But, if you want to make your website fast,
you should be looking at the whole thing
The way I do it is divide up the profiling into client side profiling and server side profiling. There are tools like YSlow that profile your web page on the client side and provide reccomendations. Also, Chrome comes with an inbuilt monitor that help you monitor the client side activities. Firefox comes with a plugin that is similar called Firebug. I believe IE also comes with a profiler now, but I haven't used it
For server side profiling, my employer has used load
testing tools to identify slow pages, and then we have just inspected logs to and monitored database to find hotspots within the code.