Hello Alexandre,
happy to hear you will work on this! AB> Here are some thoughts: AB> - 2 kinds of profiling: time and speed. How long methods of my AB> application takes ? How much memory my application requires ?
one thing I always miss: the time spent in my code vs. the total time spent in the method. I always have to write something to find out never knowing if my simplifications are valid.
Example: my code is iterating over an ordered collection and I want to know if OrderedCollection>>do: already takes a significant time of it all, so it's not worth speeding up my method.
Also I'd like a non indented display in the ProfileBrowser, just methods ordered by the time spent inside them and the number of sends.
ClassName>>messageName, timeSpentHere, numberOfSends, ordered by time.
The number of sends is important, it is a difference to reduce the number of sends or to speed up the code.
AB> - Currently, in Squeak, I can only listen to everything (i.e., AB> every method call is measured). It might be interesting to limit the AB> measurement to a small part of the system (e.g., objets).
A good idea! Please extend it to isKindOf as a way to select objects included into the measurement.
There is another area which I call "activity spikes" lacking a better description. Think of responsiveness of an UI. Think of real time processing, like not missing an audio sample.
I'd like to have a trigger when the time spent in a block of code exceeds a certain time. Then I'd like to get a trace of sends to find out what lead to this situation.
This needs a finer grained timer, as it's not an option to divide the obtained time by the number of executions.
Also a trigger on number of sends. The objects you mention also belong to the triggers.
A trace and triggers are important in profiling.
And please keep me (or the list) posted in this matter!
Cheers,
Herbert mailto:herbertkoenig@gmx.net