The CallProfiler is being integrated into Zope 2.6. Once 2.6 has been out for a while, I will disable the download on this page.
CallProfiler monitors the chain of DTML, ZSQL, ZPT, PythonMethod, PythonScript, etc. calls in a Zope request and gather timing information, for the purpose of identifying hot-spots for potential optimisation.
This works in Python 2.1.1 and Zope 2.4.3. I know there's Python 2-isms in here that make it not work under 1.5.2, and there's reports that it doesn't work under Zope 2.3 or 2.5. I don't have access to other Zope environments (or time) but I'll accept patches...
Some screenshots are available of version 1.4:
Note that because the example page being used in these screenshots is so simple, some of the additional features are not shown ... like culling of "uninteresting" processing steps (time spent in a call that takes less than 0.5% of the total processing time - this doesn't remove actual calls though) and indication of repetition of calls with "(3rd call)".