You are here: Home Zope products Products.CallProfiler

Products.CallProfiler (1.5.1)

by Ihor Berehulyak last modified 2011-11-29
Released on 2011-11-23 by Alexander Limi for Plone 4.1 under Unavailable License available for All platforms.
Software development stage: stable
Call Profiler monitors the chain of DTML, ZSQL, ZPT, Python method and Python Script.


Once the product is installed in your Products directory and Zope has been restarted, visit the Call Profiler link in your Control Panel.

In the configuration tab, check the types of documents you wish to obtain the timing information for. You may also clear any previously gathered timing information using the "clear" buttons.

Once you have selected the documents to monitor and have clicked "Monitor selected calls", load up the pages you wish to profile. Once they're loaded (or even as they're loading :) you should visit the results tab. There you will find a list of the requests made by browsers with some timing information:

  • clicking the url will load the page requested
  • clicking on the time of the request will bring up a blow-by-blow breakdown of the documents called to form the request.

You may also see the requests aggregated by URL on the "Requests By URL" tab - giving the minimum, average and maximum times for the responses. You may:

  • click the url to load the page requested
  • click the session times to see the detailed breakdown of the request

The detailed view is set to highlight calls that broach 3% (yellow), 5% (orange) and 10% (red) of the total request time.

If a given document call has sub-calls:

  • the '...' times indicate the time spent in the call (between sub-calls)
  • the (end) time gives two timings:
    • the first is the time spent in the call not including sub-calls
    • the second time is the total time of the call including sub-calls


All profiling information is lost when either:

  1. Zope is restarted, or
  2. the Call Profiler product's code is re-loaded.

Also, don't leave the profiler on for too long - it uses a boundless memory-based store for the timing values. It will use up all your memory eventually (though we haven't done any testing to determine how long that might be).

Document Actions
Powered by Plone