public unsafe void Parse(EtwTraceNativeComponents.EVENT_RECORD *rawData) { if (rawData->EventHeader.Opcode == 17) { GCPerHeapHistoryTraceEvent gcperHeapHistoryTraceEvent = new GCPerHeapHistoryTraceEvent(GCPrivateEventsParser.providerGuid, "Microsoft-Windows-DotNETRuntimePrivate", rawData); List <long[]> list; if (!this.processData.TryGetValue(rawData->EventHeader.ProcessId, out list)) { list = new List <long[]>(); this.processData.Add(rawData->EventHeader.ProcessId, list); } long[] array = new long[4]; for (Gens gens = Gens.Gen0; gens <= Gens.GenLargeObj; gens++) { long fragmentation = gcperHeapHistoryTraceEvent.GenData(gens).Fragmentation; array[(int)gens] = fragmentation; } list.Add(array); } }
internal GCPerHeapHistoryGenData(GCPerHeapHistoryTraceEvent container, int offset) { this.container = container; this.startOffset = offset; }