Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        /// <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);
                }
            }
        }