You can do things like: MessageTally spyOn: [ 1 to: 1000 do: [ :i | i primeFactors logCr ] ]. or AndreasSystemProfiler spyOn: [ 1 to: 1000 do: [ :i | i primeFactors logCr ] ]. See https://www.youtube.com/watch?v=aiA8GblEw00 or [ 1000 primeFactors ] benchFor: 5 seconds --> "a BenchmarkResult(11,386,117 iterations in 5 seconds. 2,277,223 per second)" or [ 1000000 timesRepeat: [ 1000 primeFactors ] ] timeToRun --> "0:00:00:01.055" etc. http://www.smalltalkhub.com/#!/~StefanMarr/SMark is also interesting and more like a framework. ZnBase64EncoderTests class side has a few bench methods: bench10kEncode "self bench10kEncode" | bytes | bytes := ByteArray new: 10240 streamContents: [ :out | 10240 timesRepeat: [ out nextPut: 256 atRandom - 1 ] ]. ^ [ ZnBase64Encoder new encode: bytes ] bench There is also this chapter: http://pharobooks.gforge.inria.fr/PharoByExampleTwo-Eng/latest/Profiling.pdf HTH Phil On Thu, May 25, 2017 at 12:51 PM, Steven Costiou <steven.costiou@kloum.io> wrote:
Hi,
is there any benchmark library for Pharo ? that would provide tools to choose metrics to measure between two versions of the same code and maybe display a comparison or something (whatever the form of the report) ?
I've found BenchmarkResult in Pharo but it seems very basic, at least there are no detailed examples of how it could be used.
I'm specifically looking for a way to measure the speed of method calls (if that is possible) or the memory usage, but i'm also curious in general about what is measureable and try different benchmarks to see the results. So if there were a tool already doing all this work... ?
Steven.