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

Readymetrics #81

Merged
merged 35 commits into from
Jan 29, 2024
Merged

Readymetrics #81

merged 35 commits into from
Jan 29, 2024

Conversation

AloisKraus
Copy link
Collaborator

  • -Extract

    • Added -NoCSwitch and -NoSampling to ignore CPU sampling or context switch data when extracing CPU or stacktag data.
    • Added extraction of process piorities via Context Switch events in addition to CPU sampling data.
    • Power
      • Parse events not exposed by TraceProcessing on our own:
      • Autonomous Mode
        • BaseProfile
        • HeteroPolicy
        • HeteroThread
        • HeteroThreadShort
  • -Dump Stats

    • -Dump Stats print CPU Topology for P and E Cores in NumberOfProcessors and SpeedMHz.
  • -Dump Power

    • Added to CSV newly added columns.
    • Print newly exposed properties
  • -Dump CPU

    • Added to SortOrder Priority which only sorts in CPU total mode.
    • Added -NoPriority flag to get old output
    • Added to Ready data >99% sum to get total sum and sum of mount Everest outliers to be able to judge the overall distribution shape.
    • Fixed formatting when only stacktags are visible.
    • Added to CSV data Sum and 99% sum columns.
  • Fixes

    • Do not crash when CPU topology data is not present.
    • Spurious Frequency data even when not explicitly recorded.
    • GetProcessIndexByPidAtTime which would not return the index when process start or end time was given.
    • Fix .NET 4.8 app.config binding to System.Runtime.CompilerServices.Unsafe
    • Fix language specific tests on non English systems.
  • Update target framework from .NET 6.0 to .NET 8.0.

  • Remove superfluous Exception overloads

  • Updated dependent libraries

- Added -NoPriority flag to get old output
- Print idle and non-idle ready times
- Fixed column algnment
…nAdaptationMode> to use server GC with a dynamic number of GC Heaps instead of the currently hard coded 4.

This shows significant memory savings in high memory pressure scenarios.
…ull for processes which are still existing as ID but no name can be retrieved.
- Reordered CSV columns and added NonIdle Ready Times
    The idle and non idle cswitch counts can be off by the total context switch count because for each method
    we only calculate percentiles if at least 50 CSwitch events were found.
- Fix output regressions due to new column in tests
…n the idle process (it is always 0) instead slice?.Wait?.ReadyThreadEvent?.ReadyingProcess?.Id is the correct one to get the extracted data to match with WPA.

- Adapted test data to match with values displayed in WPA
Renamed properties to reflect that we measure C1 states from idle and own process which we call DeeSleep Read Times. All others are non deep sleep states.
Added sum of all values which are >99% of all events to make it easy to check if some mount everest outliers are responsible for the majority of delays
…est outliers to be able to judge the overal distribution shape.

- Fixed formatting when only stacktags are visible
- Added to CSV data Sum and 99% sum columns
- Renamed ReadyTimes to stay consistent with file naming
   Parse events not exposed by TraceProcessing on our own:
   Autonomous Mode
   BaseProfile
   HeteroPolicy
   HeteroThread
   HeteroThreadShort
- Dump Power print newly exposed properties
- Dump Power fixed issue where too many files were supressed in diff mode
…Id == WindowsConstants.IdleProcessId and use slice.PreviousActivityOnProcessor.Process.Id == WindowsConstants.IdleProcessId && slice?.SwitchIn?.ContextSwitch?.PreviousCState == 1 again which is the correct way. When PreviousCState is 1 it must have been switched by the dile thread.
…g but in the end 0 files are printed.

  Now we print the skipped files and keep of each group the first file so we print one file of an identical power settings group.
  - Added -NoCSwitch and -NoSampling to ignore CPU sampling or context switch data when extracing CPU or stacktag data.
  - Added extraction of process pirorities via Context Switch events in addition to CPU sampling data.
@AloisKraus AloisKraus merged commit 608066d into main Jan 29, 2024
1 check passed
@AloisKraus AloisKraus deleted the readymetrics branch January 29, 2024 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant