<div dir="ltr"><div dir="ltr"><div>Hi folks,</div><div><br></div><div>I'm in the process of doing performance benchmarks of my Code Coverage tool for my thesis, and I've encountered something interesting while measuring the test execution times of the Aconcagua package.</div><div><br></div><div><b>Observation:</b><br>When running the Aconcagua test suite 150 times in a clean image, the execution times are not normally distributed. Instead, they fall into two distinct "modes":<br><br><img src="cid:ii_mp2zz9lt2" alt="image.png" width="535" height="423"><br>A Base Mode (~6.28 ms): Representing roughly 72% of the iterations.<br>A Spike Mode (~7.0 ms): Representing roughly 28% of the iterations.<br><br>As the next plot shows, the spikes are not random; they seem to be kind-of deterministic (roughly every 4th iteration).</div><div>I think these perturbations are visible because I'm taking very small measurements (~6.28 ms).</div><div><img src="cid:ii_mp2ziel81" alt="image.png" width="535" height="422"><br><br><b>Question:</b><br>I am trying to isolate whether this "heartbeat" is originating from within the Cuis image or the VM/OS layer (I'm thinking of VM timer/events, maybe UI timers?)</div><div>Does anyone know what could be causing this?</div><div>Are there any known events that run at this particular frequency?</div><div><br></div><div>I repeated the experiment a couple of times and the perturbations are consistent (in terms of ms and frequency).</div><div><br></div><div><b>Methodology:</b></div><div><ul><li>Measurements were taken in batches of 50 test runs.</li><li>Each batch was run in a fresh image, waiting 2 minutes for the VM to stabilize Cuis code.</li><li>10 warmup runs were done and discarded before measuring test run times.</li><li>Measurements were taken using Time primHighResClock and converted to ms using Time highResTimerTicksPerMillisecond.</li><li>VM stats were collected before and after measurements. A full GC was run before taking measurements.</li><li>No GC activity was observed while measuring the tests run (VM stats report no full nor incremental GCs).</li><li>The test suite was created and run from a workspace</li></ul></div><div><b>Cuis environment:</b><br><ul><li>Cuis Smalltalk commit: <a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/commit/b221722348cc46ebb9f5d9f3a057a3f361aa3d55">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/commit/b221722348cc46ebb9f5d9f3a057a3f361aa3d55</a></li><li>Code Coverage commit: <a href="https://github.com/npapagna/cuis-code-coverage/commit/db19de02250a3fd50dfc4e0b4d0893b656e31e9b">https://github.com/npapagna/cuis-code-coverage/commit/db19de02250a3fd50dfc4e0b4d0893b656e31e9b</a></li><li>Aconcagua commit: <a href="https://github.com/Cuis-Smalltalk/Measures/commit/05aa02aada64f7b64898a5e1452ae8fb76f79427">https://github.com/Cuis-Smalltalk/Measures/commit/05aa02aada64f7b64898a5e1452ae8fb76f79427</a></li></ul><b>Machine environment:</b><br><ul><li>Model Name: MacBook Pro</li><li>Model Identifier:       MacBookPro18,3</li><li>Model Number:        MKGR3LL/A</li><li>Chip:     Apple M1 Pro</li><li>Total Number of Cores: 8 (6 Performance and 2 Efficiency)</li><li>Memory:  16 GB</li><li>System Firmware Version:      13822.81.10</li><li>OS Loader Version:      13822.81.102</li><li>APPLE SSD AP0512R (NVMe, avg read 5671 MB/s, avg write 5670 MB/s)</li><li>macOs 26.3 (25D125)</li><li>A dedicated fresh profile was created for the benchmarks (indexing, time machine, screen lock/saver, display shutdown, bluetooth and wifi disabled).</li></ul></div></div><div dir="ltr"><div>Thanks in advance,</div><div>Nico PM</div><div><br></div></div>
</div>