Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Profile GC #606

Open
wants to merge 24 commits into
base: pharo-10
Choose a base branch
from
Open

Conversation

PalumboN
Copy link
Collaborator

@PalumboN PalumboN commented May 31, 2023

Here is the work related to GC profiling (used for the IWST paper).

How to use it?

  1. Build the VM
  2. Run any program using the generated VM (as normal)
  3. A file called scavenge.log (but it has info about the FullGCs also) will be generated in the current directory
  4. You can plot some charts from that log file using GCProfile charts (used for the paper) tesonep/benchy#23

WIP

Still need some work to be integrated.
I also want to be sure that performance is not affected (significantly) if the profiler is off.

Comment on lines +1 to +8
Class {
#name : #VMTrace,
#superclass : #Object,
#instVars : [
'messageNodes'
],
#category : #'VMMaker-Tools'
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This class was used for execution trace analysis. Not related to this work.

I'll remove it (but save it in some place before)

Comment on lines 694 to +695
scavengeLog ifNotNil:
[self writeScavengeLog]
[self writeScavengeLogAsSTON]
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we want to control this 🤔

tenuringProportion := 0.9
tenuringProportion := 0.9.

self openScavengeLog
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: open logs from the image side

Comment on lines +1478 to +1479
self writeSTON: scavengeLogRecord toFile: scavengeLog.
self fprintf: scavengeLog _: '\n---\n'.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicated

Comment on lines 12962 to 12972
fullGCLogRecord
fullGCs: statFullGCs;
fullUsecs: statFullGCUsecs;
compactionUsecs: statCompactionUsecs;
sweepUsecs: gcSweepEndUsecs;
markUsecs: statMarkUsecs.

self writeSTON: fullGCLogRecord toFile: scavenger logStream.
self fprintf: scavenger logStream _: '\n---\n'.

scavenger logStream fflush
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if missing (similar to Scavenger)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant