VM Maker: CogTools-eem.70.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: CogTools-eem.70.mcz

commits-2
 
Eliot Miranda uploaded a new version of CogTools to project VM Maker:
http://source.squeak.org/VMMaker/CogTools-eem.70.mcz

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

Name: CogTools-eem.70
Author: eem
Time: 17 June 2014, 10:59:51.468 am
UUID: 558f0b66-463f-4b27-a542-718fd8485e78
Ancestors: CogTools-eem.69

Get new and old space sizes right in VMProfiler report.

=============== Diff against CogTools-eem.69 ===============

Item was changed:
  ----- Method: VMProfiler class>>reportGCStats:upTime:on: (in category 'reports') -----
  reportGCStats: gcStatsArray upTime: elapsedMilliseconds on: str
  | oldSpaceEnd youngSpaceEnd memoryEnd fullGCs fullGCTime incrGCs incrGCTime tenureCount rootOverflows |
  gcStatsArray ifNil: [^self].
 
+ oldSpaceEnd := gcStatsArray at: 2. "a.k.a. oldSpace size on Spur"
- oldSpaceEnd := gcStatsArray at: 1. "a.k.a. oldSpace size on Spur"
  fullGCs := gcStatsArray at: 7.
  fullGCTime := gcStatsArray at: 8.
  incrGCs := gcStatsArray at: 9.
  incrGCTime := gcStatsArray at: 10.
  tenureCount := gcStatsArray at: 11.
  rootOverflows := gcStatsArray at: 22.
 
  str cr.
  str nextPutAll: '**Memory**'; cr.
  str nextPutAll: ' old ';
  nextPutAll: oldSpaceEnd asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
  self amOnSpur
  ifTrue:
  [(gcStatsArray at: 54) ifNotNil:
  [:freeSpace|
  str nextPutAll: ' free ';
  nextPutAll: freeSpace asStringWithCommasSigned; nextPutAll: ' bytes'; cr]]
  ifFalse:
+ [youngSpaceEnd := gcStatsArray at: 1.
- [youngSpaceEnd := gcStatsArray at: 2.
  memoryEnd := gcStatsArray at: 3.
  str nextPutAll: ' young ';
  nextPutAll: (youngSpaceEnd - oldSpaceEnd) asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
  str nextPutAll: ' used ';
  nextPutAll: youngSpaceEnd asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
  str nextPutAll: ' free ';
  nextPutAll: (memoryEnd - youngSpaceEnd) asStringWithCommasSigned; nextPutAll: ' bytes'; cr].
 
  str cr.
  str nextPutAll: '**GCs**'; cr.
  str nextPutAll: ' full ';
  print: fullGCs; nextPutAll: ' totalling '; nextPutAll: fullGCTime asStringWithCommas; nextPutAll: 'ms (';
  print: fullGCTime / elapsedMilliseconds * 100 maxDecimalPlaces: 3;
  nextPutAll: '% elapsed time)'.
  fullGCs = 0 ifFalse:
  [str nextPutAll: ', avg '; print: fullGCTime / fullGCs maxDecimalPlaces: 3; nextPutAll: 'ms'].
  str cr.
  str nextPutAll: (self amOnSpur ifTrue: [' scavenges '] ifFalse: [' incr ']);
  print: incrGCs; nextPutAll: ' totalling '; nextPutAll: incrGCTime asStringWithCommas; nextPutAll: 'ms (';
  print: incrGCTime / elapsedMilliseconds * 100 maxDecimalPlaces: 3;
  nextPutAll: '% elapsed time)'.
  incrGCs = 0 ifFalse:
  [str nextPutAll:', avg '; print: incrGCTime / incrGCs maxDecimalPlaces: 3; nextPutAll: 'ms'].
  str cr.
  str nextPutAll: ' tenures ';
  nextPutAll: tenureCount asStringWithCommas.
  tenureCount = 0 ifFalse:
  [str nextPutAll: ' (avg '; print: (incrGCs / tenureCount) asInteger; nextPutAll: ' GCs/tenure)'].
  str cr.
  str nextPutAll: ' root table ';
  nextPutAll: rootOverflows asStringWithCommas; nextPutAll:' overflows'.
  str cr.
 
  (gcStatsArray size >= 63 and: [(gcStatsArray at: 63) isInteger]) ifTrue:
  [| numCompactions compactionMsecs |
  str cr; nextPutAll: '**Compiled Code Compactions**'; cr.
  numCompactions := gcStatsArray at: 62.
  compactionMsecs := gcStatsArray at: 63.
  str tab;
  print: numCompactions; nextPutAll: ' totalling ';
  nextPutAll: compactionMsecs asStringWithCommas; nextPutAll: 'ms (';
  print: compactionMsecs / elapsedMilliseconds * 100 maxDecimalPlaces: 3;
  nextPutAll: '% elapsed time)'.
  numCompactions = 0 ifFalse:
  [str nextPutAll: ', avg '; print: compactionMsecs / numCompactions maxDecimalPlaces: 3; nextPutAll: 'ms'].
  str cr].
 
  gcStatsArray size >= 61 ifTrue:
  [str cr; nextPutAll: '**Events**'; cr.
  (56 to: 61)
  with: #('Process switches' 'ioProcessEvents calls' 'Interrupt checks' 'Event checks' 'Stack overflows' 'Stack page divorces')
  do: [:index :eventName| | value n |
  value := gcStatsArray at: index.
  n := 22 - eventName size // 4 + 1.
  str nextPutAll: eventName; tab: n; print: value; nextPutAll: ' (';
  print: (value * 1000 / elapsedMilliseconds) rounded; nextPutAll: ' per second)'; cr]]!