When the ProfMonitor sample timer fires while user action C code is executing, the sample is not actually taken until control returns back to smalltalk. This is usually when the user action code finishes and control has returned back to the calling smalltalk method. But if the user action code makes a smalltalk callback, the sample will be taken in that smalltalk method. In both cases this can result in a sampling bias toward these methods, leading to higher than expected tally counts and percentages for these methods.
Versions 3.3 and later allow real-time profiling as an alternative to elapsed time. Include #real in the array passed to the ProfMonitor method with the options keyword.
Last updated: 10/25/23