[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