-
Notifications
You must be signed in to change notification settings - Fork 717
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
New Instrumentation Support for .NET 6 #1481
Conversation
Hi @brianrob! I've made good progress on this. However, for some reason I feel I'm missing stuff. But I'm not sure exactly what. Could you please take a look when you're able to, and give me pointers on what I might be missing? Thanks a lot! |
@ivdiazsa, I am not familiar with all of the runtime side changes to be able to compare this against them, but overall, this change looks reasonable, and would basically make it such that you can effectively parse the changes to the events in the runtime. It looks like the CI is failing, but this is due to a compiler error, not a test error. Is there a particular area in which you have concern that I should focus on? |
@brianrob Thanks for your feedback! I mainly focused on translating the new additions from the runtime's CLR Manifest File into classes, etc of the ClrTraceEventParser. So I followed the patterns of other templates into classes, and whatnot, but I wanted to make sure things glaringly don't look bad or I didn't miss anything to add to the TraceEvent parser. The compilation error was a typo at some point. I found it yesterday while building locally but haven't uploaded the fix. Will do that soon. The other thing I wanted to ask you is if you could point me to docs or examples of existing tests so I can write some to ensure my new additions actually give coherent numbers. |
For tests, I think you should add a new test trace that gets run through https://github.com/microsoft/perfview/blob/main/src/TraceEvent/TraceEvent.Tests/GeneralParsing.cs. This test basically opens each trace, string-ifies all events, and then diffs them against the checked in baseline. You can use this mechanism to make sure that once you verify a file manually, that it remains the same over time. |
there's actually quite a bit of work to make this complete. a couple of things are missing -
public GCPerHeapHistoryGenData GenData(Gens genNumber)
source.Clr.GCPerHeapHistory += delegate (GCPerHeapHistoryTraceData data)
{
var stats = currentManagedProcess(data);
GCStats.ProcessPerHeapHistory(stats, data);
}; ( making the new info consumable means we'll need additional fields in the
|
Completes work item described in issue #1467.
For .NET 6.0, several new GC events were introduced. PerfView requires to know about them as well, so traces can be interpreted properly. This PR adds the support.