[squeak-dev] The Trunk: SystemReporter-eem.22.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Jun 26 22:23:50 UTC 2014


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]!



More information about the Squeak-dev mailing list