Drop Profiler - Profiler in a Single JSP

Drop profiler is a simple browser based profiler for Java servlet containers. It is intended for finding bottle necks in web applications under load.

Simply drop the JSP file into a web directory belonging to the application you want to profile and you are good to go. No server restart or reconfiguration needed. Requires Java 5 or later.

It provides:

  • Call tree with cost info
  • Call list with cost info
  • Thread list with current state and currently processed method

Data is collected by periodically analyzing the stack traces of all threads. This approach gives good results for applications under load. But it is also possible to analyze few expensive operations. The advantage - apart from not requiring a restart - is the low profiling overhead. The downside is that rare and cheap operations can be missed altogether.

The profiler does not use sessions because some apps have issues with sessions which do not meet their expectations. State is kept in a static field of the JSP. This may have side effects as well. Particularly, multiple profilers running on the same VM will interfere.

Be advised that there is no abuse protection built in and that this software should only be used in safe environments.

Licence

The download below is released under the GNU GPL.

Downloads

Drop Profiler 0.4 - JSP (2009-03-01)

Comments
Kenny (Wed, 18 Jan 2012):
This is great for quick diagnostics, to give a quick answer to why it is so slow. In this case, we are only interested in the top CPU hogs.
It would make people feel better if there is an option of clearing the static call tree. Or use a session, which works for many apps, and use the static as a backup.
Thanks for the great work!