[Vm-dev] VM Maker: CogTools-eem.90.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Aug 22 01:12:02 UTC 2021
Eliot Miranda uploaded a new version of CogTools to project VM Maker:
http://source.squeak.org/VMMaker/CogTools-eem.90.mcz
==================== Summary ====================
Name: CogTools-eem.90
Author: eem
Time: 21 August 2021, 6:12:00.785794 pm
UUID: 7df613ba-6053-42ff-932c-55ace1f665d8
Ancestors: CogTools-eem.89
Get the VMMaker to a semi-functional state in current Squeak.
=============== Diff against CogTools-eem.89 ===============
Item was changed:
----- Method: AxesMorph>>drawOn: (in category 'drawing') -----
drawOn: aCanvas
super drawOn: aCanvas.
+ [aCanvas
- aCanvas
image: self form
at: self topLeft + self borderWidth
+ rule: Form blend]
+ on: Deprecation
+ do: [:ex| ex resume]!
- rule: Form blend!
Item was changed:
----- Method: SqueakVMProfiler>>buttonMorph:help:set:enable:color: (in category 'opening') -----
buttonMorph: getLabelMessage help: help set: setter enable: enabler color: colorGetter
| pbm |
pbm := PluggableButtonMorphPlus on: self getState: nil action: setter label: getLabelMessage.
+ [pbm useRoundedCorners] on: MessageNotUnderstood do: [].
pbm
- useRoundedCorners;
getEnabledSelector: enabler;
setBalloonText: help;
getColorSelector: colorGetter;
offColor: Color transparent.
^pbm!
Item was added:
+ ----- Method: VMPExecutableModuleSymbol>>asString (in category 'printing') -----
+ asString
+ ^(name copyFrom: (name lastIndexOf: FileDirectory pathNameDelimiter) + 1 to: name size) asText allBold!
Item was added:
+ ----- Method: VMPSymbol>>asString (in category 'printing') -----
+ asString
+ "Answer the name as a string, which for the purposes of the symbol list is an unemphasized text."
+ ^name!
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"
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: true); nextPutAll: ' bytes'; cr.
- nextPutAll: oldSpaceEnd asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
self amOnSpur
ifTrue:
[(gcStatsArray at: 54) ifNotNil:
[:freeSpace|
str nextPutAll: ' free ';
+ nextPutAll: (freeSpace asStringWithCommasSigned: true); nextPutAll: ' bytes'; cr]]
- nextPutAll: freeSpace asStringWithCommasSigned; nextPutAll: ' bytes'; cr]]
ifFalse:
[youngSpaceEnd := gcStatsArray at: 1.
memoryEnd := gcStatsArray at: 3.
str nextPutAll: ' young ';
+ nextPutAll: (youngSpaceEnd - oldSpaceEnd asStringWithCommasSigned: true); nextPutAll: ' bytes'; cr.
- nextPutAll: (youngSpaceEnd - oldSpaceEnd) asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
str nextPutAll: ' used ';
+ nextPutAll: (youngSpaceEnd asStringWithCommasSigned: true); nextPutAll: ' bytes'; cr.
- nextPutAll: youngSpaceEnd asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
str nextPutAll: ' free ';
+ nextPutAll: (memoryEnd - youngSpaceEnd asStringWithCommasSigned: true); nextPutAll: ' bytes'; cr].
- 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 (';
nextPutAll: (CompatibilityClass print:(fullGCTime / elapsedMilliseconds * 100) showingDecimalPlaces: 3 );
nextPutAll: '% elapsed time)'.
fullGCs = 0 ifFalse:
[str nextPutAll: ', avg '; nextPutAll: (CompatibilityClass print:(fullGCTime / fullGCs) showingDecimalPlaces: 3); nextPutAll: 'ms'].
str cr.
str nextPutAll: (self amOnSpur ifTrue: [' scavenges '] ifFalse: [' incr ']);
print: incrGCs; nextPutAll: ' totalling '; nextPutAll: incrGCTime asStringWithCommas; nextPutAll: 'ms (';
nextPutAll: (CompatibilityClass print:incrGCTime / elapsedMilliseconds * 100 showingDecimalPlaces: 3);
nextPutAll: '% elapsed time)'.
incrGCs = 0 ifFalse:
[str nextPutAll:', avg '; nextPutAll: (CompatibilityClass print:incrGCTime / incrGCs showingDecimalPlaces: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 (';
nextPutAll: (CompatibilityClass print:compactionMsecs / elapsedMilliseconds * 100 showingDecimalPlaces: 3);
nextPutAll: '% elapsed time)'.
numCompactions = 0 ifFalse:
[str nextPutAll: ', avg '; nextPutAll: (CompatibilityClass print:compactionMsecs / numCompactions showingDecimalPlaces: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]]!
More information about the Vm-dev
mailing list