At the moment, JProfile is a bit of an "all or nothing" for the CMS, and also a little on the low side.
By all of nothing, I mean that for JProfile to run you need to enable debug, which means the database drivers will ALSO log all their queries, along with a number of other debug options. They can get quite memory intensive, when all I really want is to profile execution times for the various phases. Calls such as:
// Mark afterLoad in the profiler.
JDEBUG ? $_PROFILER->mark('afterLoad') : null;
Could be changed to simply
// Mark afterLoad in the profiler.
$_PROFILER->mark('afterLoad');
If one needs to disable the profiling in order to speed processing, that can be done in the mark method rather than in the main code.
Furthermore, I'd really like MORE profiling in the dispatcher. IE profile the start and end of each dispatch event[onContentLoad, etc] AND mark the start and end of each actual event called, so one can determine where things are bogging down.
Finally, an onProfileMark event would be good - among other things, it could be used by plugins to invoke PHP 5.3's garbage collection functions for memory intensive applications[for example, smartsearch indexing].
Just wanted to through the thought out there to see how others felt.