Eliot Miranda uploaded a new version of SystemReporter to project The Trunk:
http://source.squeak.org/trunk/SystemReporter-eem.22.mcz ==================== Summary ==================== Name: SystemReporter-eem.22 Author: eem Time: 26 June 2014, 3:22:57.793 pm UUID: 82c32c7a-dcc0-40fe-9199-3d89b4283f19 Ancestors: SystemReporter-ul.21 Bring the wonderful SystemReporter up-to-date w.r.t. Cog and Spur. =============== Diff against SystemReporter-ul.21 =============== Item was changed: ----- Method: SystemReporter>>reportVMParameters: (in category 'reporting') ----- reportVMParameters: aStream + | vmParameters isCog isSpur | - | vmParameters | self header: 'Virtual Machine Parameters' on: aStream. vmParameters := Smalltalk vm getVMParameters. + isCog := (vmParameters at: 41 ifAbsent: [0]) anyMask: 1. "determine Cog/Stack via bit 0, requires native float order." + isSpur := isCog and: [(vmParameters at: 41 ifAbsent: [0]) anyMask: 2r10000]. "bit 16 is the Spur bit" + (isSpur + ifFalse: + [#( 1 'size of old space' + 2 'size of young+old space' + 3 'size of memory')] + ifTrue: + [#( 1 'size of old space' + 2 'size of new space' + 3 'size of heap')]), + (isSpur + ifFalse: + [#( 4 'allocationCount' + 5 'allocations between GCs' + 6 'survivor count tenuring threshold')] + ifTrue: [#()]), + #( 7 'full GCs since startup' + 8 'total milliseconds in full GCs since startup'), + (isSpur + ifFalse: [#( 9 'incremental GCs since startup' + 10 'total milliseconds in incremental GCs since startup')] + ifTrue: [#( 9 'scavenging GCs since startup' + 10 'total milliseconds in scavenging GCs since startup')]), + #( 11 'tenures of surving objects since startup'), + (isCog + ifFalse: + [#( 12 'specific to the translating VM' + 13 'specific to the translating VM' + 14 'specific to the translating VM' + 15 'specific to the translating VM' + 16 'specific to the translating VM' + 17 'specific to the translating VM' + 18 'specific to the translating VM' + 19 'specific to the translating VM' + 20 'specific to the translating VM')] + ifTrue: + [{12 to: 20. 'specific to the translating VM'}]), + #( 21 'root table size' + 22 'root table overflows since startup' - #( - 1 'end of old-space (0-based, read-only)' - 2 'end of young-space (read-only)' - 3 'end of memory (read-only)' - 4 'allocationCount (read-only)' - 5 'allocations between GCs (read-write)' - 6 'survivor count tenuring threshold (read-write)' - 7 'full GCs since startup (read-only)' - 8 'total milliseconds in full GCs since startup (read-only)' - 9 'incremental GCs since startup (read-only)' - 10 'total milliseconds in incremental GCs since startup (read-only)' - 11 'tenures of surving objects since startup (read-only)' - 12 'specific to the translating VM' - 13 'specific to the translating VM' - 14 'specific to the translating VM' - 15 'specific to the translating VM' - 16 'specific to the translating VM' - 17 'specific to the translating VM' - 18 'specific to the translating VM' - 19 'specific to the translating VM' - 20 'specific to the translating VM' - 21 'root table size (read-only)' - 22 'root table overflows since startup (read-only)' 23 'bytes of extra memory to reserve for VM buffers, plugins, etc.' + 24 'memory threshold above which shrinking object memory' + 25 'memory headroom when growing object memory'), + (isCog + ifFalse: + [#( 26 'interruptChecksEveryNms - force an ioProcessEvents every N milliseconds, in case the image is not calling getNextEvent often')] + ifTrue: + [#( 26 'heartbeat period (ms)')]), + (isSpur + ifFalse: + [#( 27 'number of times mark loop iterated for current IGC/FGC includes ALL marking' + 28 'number of times sweep loop iterated for current IGC/FGC' + 29 'number of times make forward loop iterated for current IGC/FGC' + 30 'number of times compact move loop iterated for current IGC/FGC')] + ifTrue: [#()]), + #( 31 'number of grow memory requests' + 32 'number of shrink memory requests'), + (isSpur + ifFalse: + [#( 33 'number of root table entries used for current IGC/FGC' + 34 'number of allocations done before current IGC/FGC' + 35 'number of survivor objects after current IGC/FGC' + 36 'millisecond clock when current IGC/FGC completed' + 37 'number of marked objects for Roots of the world, not including Root Table entries for current IGC/FGC' + 38 'milliseconds taken by current IGC ' + 39 'Number of finalization signals for Weak Objects pending when current IGC/FGC completed')] + ifTrue: + [#( 36 'millisecond clock when current SGC/FGC completed' + 38 'milliseconds taken by current SGC ' + 39 'Number of finalization signals for Weak Objects pending when current SGC/FGC completed')]), + #( 40 'VM word size - 4 or 8'), + (isCog ifTrue: + [#( + 41 'imageFormatVersion for the VM' + 42 'number of stack pages in use' + 43 'desired number of stack pages (stored in image file header, max 65535)' + 44 'size of eden, in bytes' + 45 'desired size of eden, in bytes (stored in image file header)' + 46 'machine code zone size, in bytes' + 47 'desired machine code zone size (0 => default 1Mb)' + 48 'various header flags. See getCogVMFlags.' + 49 'max size the image promises to grow the external semaphore table to'), + (isSpur + ifFalse: + [{ 50 to: 54. 'reserved for VM parameters that persist in the image (such as size of eden above)'. + 55 to: 56. 'specific to Spur' }] + ifTrue: + [{ 50 to: 53. 'reserved for VM parameters that persist in the image (such as size of eden above)' }, + #( 54 'total free old space' + 55 'ratio of growth and image size at or above which a GC will be performed post scavenge')]), + #( 56 'number of process switches since startup' + 57 'number of ioProcessEvents calls since startup' + 58 'number of forceInterruptCheck calls since startup' + 59 'number of check event calls since startup' + 60 'number of stack page overflows since startup' + 61 'number of stack page divorces since startup' + 62 'compiled code compactions since startup' + 63 'total milliseconds in compiled code compactions since startup' + 64 'the number of methods that currently have jitted machine-code' + 65 'whether the VM supports MULTIPLE_BYTECODE_SETS or not.' + 66 'the byte size of a stack page'), + { 67 to: 69. 'reserved for more Cog-related info' }, + #( 70 'the vmProxyMajorVersion (the interpreterProxy VM_MAJOR_VERSION)' + 71 'the vmProxyMinorVersion (the interpreterProxy VM_MINOR_VERSION)')]) + pairsDo: [:idx :desc | | value values | + aStream nextPut: $#. + idx isInteger + ifTrue: + [value := vmParameters at: idx. + aStream print: idx; tab; nextPutAll: ((value isInteger and: [idx ~= 41]) ifTrue: [value asStringWithCommas] ifFalse: [value printString])] + ifFalse: + [value := vmParameters at: idx first. + aStream print: idx first; next: 2 put: $.; print: idx last; tab. + values := idx collect: [:i| vmParameters at: i]. + values asSet size = 1 + ifTrue: [aStream print: value] + ifFalse: [values do: [:v| aStream print: v] separatedBy: [aStream nextPutAll: ', ']]]. + aStream tab; nextPutAll: desc; cr]! - 24 'memory threshold above which shrinking object memory (rw)' - 25 'memory headroom when growing object memory (rw)' - 26 'interruptChecksEveryNms - force an ioProcessEvents every N milliseconds, in case the image is not calling getNextEvent often (rw)' - 27 'number of times mark loop iterated for current IGC/FGC (read-only) includes ALL marking' - 28 'number of times sweep loop iterated for current IGC/FGC (read-only)' - 29 'number of times make forward loop iterated for current IGC/FGC (read-only)' - 30 'number of times compact move loop iterated for current IGC/FGC (read-only)' - 31 'number of grow memory requests (read-only)' - 32 'number of shrink memory requests (read-only)' - 33 'number of root table entries used for current IGC/FGC (read-only)' - 34 'number of allocations done before current IGC/FGC (read-only)' - 35 'number of survivor objects after current IGC/FGC (read-only)' - 36 'millisecond clock when current IGC/FGC completed (read-only)' - 37 'number of marked objects for Roots of the world, not including Root Table entries for current IGC/FGC (read-only)' - 38 'milliseconds taken by current IGC (read-only)' - 39 'Number of finalization signals for Weak Objects pending when current IGC/FGC completed (read-only)' - 40 'VM word size - 4 or 8 (read-only)' - ) pairsDo: [:idx :desc | - aStream - nextPut: $#; - nextPutAll: idx printString; - tab; - nextPutAll: (vmParameters at: idx) printString; - tab; - nextPutAll: desc; - cr]! |
Free forum by Nabble | Edit this page |