[Vm-dev] VM Maker: VMMaker.oscog-eem.3299.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Jan 13 22:24:46 UTC 2023
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3299.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3299
Author: eem
Time: 13 January 2023, 2:24:26.105002 pm
UUID: 35ad78ad-0942-4eac-8933-d519dee50a12
Ancestors: VMMaker.oscog-eem.3298
Add a useful comment to benchmarkFollowForwardingPointersOfReceiverAndTemporariesInStackZone to compare it to benchmarkFollowForwardersInStackZone.
Here's the comparison, on a MacBook Pro (16-inch, 2021), Apple M1 Max, Cores: 10 (8 performance and 2 efficiency):
11.176 usecs average for ollowForwardersInStackZone
14.501 usecs average for followForwardingPointersOfReceiverAndTemporariesInStackZone
And here's stats for jitting all of CompiledCode's methods:
min max average
2.417 79.257 9.674 usecs to JIT
2 20 5.938 number of literals
1 106 17.464 number of bytecodes
=============== Diff against VMMaker.oscog-eem.3298 ===============
Item was changed:
----- Method: CoInterpreter class>>benchmarkFollowForwardingPointersOfReceiverAndTemporariesInStackZone (in category 'benchmarks') -----
benchmarkFollowForwardingPointersOfReceiverAndTemporariesInStackZone
"Answer the elapsed time in microseconds for followForwardingPointersOfReceiverAndTemporariesInStackZone."
| ticksPerMicrosecond |
ticksPerMicrosecond := Time highResClockTicksPerMillisecond / 1000.0.
^self primitiveBenchmarkFollowForwardersOfReceiverAndTemporariesInStackZone / ticksPerMicrosecond
+ "self benchmarkFollowForwardingPointersOfReceiverAndTemporariesInStackZone"
+ "| goDeep |
+ goDeep := #defined.
+ goDeep := [:depth| | laurel hardy |
+ depth < 1
+ ifTrue:
+ [laurel := OrderedCollection new.
+ hardy := laurel copy.
+ 10 timesRepeat:
+ [laurel add: self benchmarkFollowForwardersInStackZone.
+ hardy add: self benchmarkFollowForwardingPointersOfReceiverAndTemporariesInStackZone].
+ { laurel. hardy } collect: [:stats| stats average roundTo: 0.001]]
+ ifFalse:
+ [goDeep value: depth - 1]].
+ goDeep value: 1000"!
- "self benchmarkFollowForwardingPointersOfReceiverAndTemporariesInStackZone"!
More information about the Vm-dev
mailing list