[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