Most profilers, including MessageTally, count stack frames at a regular interval. This is doomed to be inexact, non-deterministic and non-portable, and so, whatever the effort you will put in the thread scheduling, memory management or whatsoever.
I think you're being a bit harsh on stack sampling there. It is exact enough to drive optimisation in some really high-performance VMs. It is also deterministic enough to yield data leading to very good performance results in those VMs. Whether focusing on counting messages instead of taking samples is more beneficial would have to be determined by experiment ...
Yes, 25 pages of experiment :-)
What you mean with "non-portable" I do not understand.
The information about the execution time contained in your profile cannot be compared with a new profile realized on a different machine, with a different CPU. Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.