Hi! There's a feature I haven't seen in any profiler, though I'd find it very useful:
When profiling an application, normally I include in the trace only classes in the project I'm developing. I'm not interested in the internal behavior and call trees of methods outside my packages. However, it would be very interesting to know how much time I spend in methods outside my packages. This would mean, for each of the instrumented methods, to show what non-instrumented methods are called, and how much time was spent in each.
Note that this requires a different kind of instrumentation: method bodies must be searched for calls to methods that are not instrumented, and those calls must be wrapped with the measuring code.
(As an example, imagine I have methods a and b in my package; a calls library method x seven times, and b calls library method y three times. Internally, x also calls y once for each call. I'd like the report for a to show seven calls to x, with the total time, and b to show three calls to y, with the total time; the additional seven calls to y from x are included in the measurement of x, not separately, since I don't care how x works.)
Is that hard to do? (I might volunteer to implement it myself, with a little support.)