...instead of "Process allSubInstances". The caveat is this: process creation gets a little bit slower while accessing the list of runnable *and* waiting processes gets about 40x faster:
[ [] newProcess terminate ] bench.
AFTER: '140,000 per second. 7.13 microseconds per run. 35.02 % GC time.'
BEFORE: '224,000 per second. 4.47 microseconds per run. 4.38 % GC time.'
[ aProcessBrowser updateProcessList ] bench. -- allow quick updates
AFTER: '4,410 per second. 227 microseconds per run. 77.34453 % GC time.'
BEFORE: '118 per second. 8.47 milliseconds per run. 2.59792 % GC time.'
Why do we need this? If you have an auto-updating ProcessBrowser running in the background while doing time-sensitive benchmarks, you want a fast ProcessBrowser :-)
Please see the attached change set. Thanks to Leon and Eliot for the hint!
Best,
Marcel