[Vm-dev] VM Maker: VMMaker.oscog-eem.1637.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jan 15 23:46:00 UTC 2016


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1637.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.1637
Author: eem
Time: 15 January 2016, 3:44:13.036088 pm
UUID: b9e8c2e2-f194-42cf-8ffa-ef31159aabed
Ancestors: VMMaker.oscog-eem.1636

Add some commentary on default sizes, explaining why 64-bit Spur has the same default eden size as 32-bits.

=============== Diff against VMMaker.oscog-eem.1636 ===============

Item was changed:
  ----- Method: CogAbstractInstruction>>getDefaultCogCodeSize (in category 'accessing') -----
  getDefaultCogCodeSize
+ 	"Answer the default number of bytes to allocate for native code at startup.
+ 	 The actual value can be set via vmParameterAt: and/or a preference in the ini file.
+ 	 Subclasses may this default override to arrange that the code zone has about
+ 	 the same number of methods as the x86 back-end at a similar point in execution."
- 	"Return the default number of bytes to allocate for native code at startup.
- 	 The actual value can be set via vmParameterAt: and/or a preference in the ini file."
  	<inline: true>
  	^1024 * 1024!

Item was changed:
  ----- Method: SpurMemoryManager>>defaultEdenBytes (in category 'snapshot') -----
  defaultEdenBytes
  	"Answer the default amount of memory to allocate for the eden space.
  	 The actual value can be set via vmParameterAt: and/or a preference in the ini file.
+ 	 The shootout tests seem to plateau at 5 or 6Mb.
+ 
+ 	 Both the 32-bit and 64-bit versions use the same 4Mb default.  Measuring
+ 	 the simulator on image start-up, the 64-bit system's eden at the same point
+ 	 in start-up (the first copyBits) is only 8% larger in bytes because it allocates
+ 	 26% fewer objects.  Some 21% of the objects in the 32-bit version's eden
+ 	 are large integers and floats that are representable as 64-bit immediates."
- 	 The shootout tests seem to plateau at 5 or 6Mb"
  	<inline: false>
+ 	^4 * 1024 * 1024
+ 
+ 	"Here are the expressions used to collect the above-mentioned figures:"
+ 	"freeStart - self newSpaceStart"
+ 	"| n | n := 0. self allNewSpaceObjectsDo: [:o| n := n + 1]. n"
+ 	"| f | f := 0. self allNewSpaceObjectsDo: [:o| (self isFloatObject: o) ifTrue: [f := f + 1]]. f"
+ 	"| l | l := 0. self allNewSpaceObjectsDo: [:o|
+ 		(((self classIndexOf: o)
+ 				between: ClassLargeNegativeIntegerCompactIndex
+ 				and: ClassLargePositiveIntegerCompactIndex)
+ 		and: [(self numBytesOfBytes: o) < 8
+ 			or: [(self numBytesOfBytes: o) = 8 and: [(self fetchByte: 7 ofObject: o) < 32]]])
+ 		ifTrue: [l := l + 1]]"!
- 	^4 * 1024 * 1024!



More information about the Vm-dev mailing list