public static ClrCap.JitCapAnalysis CreateJITCap(string etlFile, int methodCount = 20) { ETLDataFile EtlDataFile = new ETLDataFile(etlFile); TraceLog TraceLog = EtlDataFile.TraceLog; TraceLogEventSource Source = TraceLog.Events.GetSource(); using (ETLDataFile etlDataFile = new ETLDataFile(etlFile)) { TraceLog traceLog = etlDataFile.TraceLog; TraceLogEventSource source = traceLog.Events.GetSource(); using (ETWTraceEventModelSource model = new ETWTraceEventModelSource(source)) { model.DisableAll().EnableSamples().Configure(etlDataFile); ClrCap.JitCapAnalysis report = new ClrCap.JitCapAnalysis(); SetupCapCollectors(model.Source, report); model.Process(); //UpdateCommonInfo(etlFile, model.Source, report); ClrCap.CAP.GenerateJITCAPReport(model.Processes, report, methodCount); return(report); } } }
/// <summary> /// Creates the .NET CAP Report /// </summary> /// <param name="etlFile"></param> /// <returns></returns> public static ClrCap.CAPAnalysis CreateGCCap(string etlFile) { using (ETWTraceEventSource source = new ETWTraceEventSource(etlFile, TraceEventSourceType.MergeAll)) { using (ETWTraceEventModelSource model = new ETWTraceEventModelSource(source)) { model.DisableAll().EnableGC(); ClrCap.CAPAnalysis report = new ClrCap.CAPAnalysis(); SetupCapCollectors(model.Source, report); model.Process(); UpdateCommonInfo(etlFile, model.Source, report); // generate the report ClrCap.CAP.GenerateGCCAPReport(model.Processes, report); return(report); } } }