Skip to content

Statistics and Metrics #62

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

Closed
qinsoon opened this issue Mar 26, 2020 · 2 comments
Closed

Statistics and Metrics #62

qinsoon opened this issue Mar 26, 2020 · 2 comments
Labels
A-utils Area: Utilities C-enhancement Category: Enhancement F-project Call For Participation: Student projects. These issues are available student projects.

Comments

@qinsoon
Copy link
Member

qinsoon commented Mar 26, 2020

In GitLab by @steveblackburn on Feb 25, 2020, 12:28

I'd like to have a systematic approach to statistics and logging.

Some principles:

  • A run-time option but with near-zero overhead when not activated (done)
  • Overheads to be absolutely minimal when activated, IO deferred to end of program. (done)
  • Assume powerful post analysis (so minimal analysis at run-time, OK to be verbose and allow analysis later)
  • Per-thread logs that might be aligned afterward via clock timestamps
    • For example, each worker thread should stamp the start and end of each work packet (thread ID, clock, work-type, start/end), and start and end of any idle time. This allows detailed breakdown of where work is performed (both concurrent and gc-time).
  • Key algorithmic decisions should be logged (eg full heap collection triggered due to ...)
  • Possibly provide a (compile-time?) switch which allows logging in real time (with overhead) for debugging purposes.
  • Should integrate well with performance counters, so for example, it should be simple to get performance counts for all worker thread stats.
  • Need to output in a form that is trivially parsed and processed
@qinsoon qinsoon added C-enhancement Category: Enhancement G-performance Goal: Performance labels Mar 26, 2020
@qinsoon qinsoon added A-utils Area: Utilities and removed G-performance Goal: Performance labels Jun 5, 2020
@qinsoon qinsoon mentioned this issue Jun 5, 2020
@steveblackburn steveblackburn added the F-project Call For Participation: Student projects. These issues are available student projects. label Feb 22, 2021
wenyuzhao referenced this issue in wenyuzhao/mmtk-core Sep 14, 2021
@qinsoon
Copy link
Member Author

qinsoon commented Jan 8, 2024

Most of the items mentioned in the issue are done by:

  • The eBPF tracing points and post-analysis scripts.
  • The analysis feature.
  • The standard Rust logging framework.
  • Perf counters are supported for gc/mutator phase and for work packets.

There are some related issues:

We can close this issue now.

@qinsoon qinsoon closed this as completed Jan 8, 2024
@wks
Copy link
Collaborator

wks commented Jan 8, 2024

#805 Heap dumping for debugging GC or VM binding

This is related, too. Currently, the VM binding can print logs when scanning objects, and that will help the GC developers see which objects are visited during GC. #805 further extends this capability to generated a trace that can be easily parsed for off-line analysis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-utils Area: Utilities C-enhancement Category: Enhancement F-project Call For Participation: Student projects. These issues are available student projects.
Projects
None yet
Development

No branches or pull requests

3 participants