private void GenerateData()
        {
            EventDescriptionBoard board = new EventDescriptionBoard()
            {
                TimeSettings = new TimeSettings()
                {
                    Origin = 0, PrecisionCut = 0, TicksToMs = 0.0001
                }, TimeSlice = new Durable(StartTime.Ticks, FinishTime.Ticks), CPUCoreCount = Environment.ProcessorCount
            };
            FrameGroup group = new FrameGroup(board);

            List <SyncEvent> syncEvents = new List <SyncEvent>(Collector.SwitchContexts.Events.Count);

            foreach (SwitchContextData sc in Collector.SwitchContexts.Events)
            {
                if (board.TimeSlice.Start <= sc.Timestamp.Ticks && sc.Timestamp.Ticks <= board.TimeSlice.Finish)
                {
                    syncEvents.Add(new SyncEvent()
                    {
                        CPUID = sc.CPUID, NewThreadID = sc.NewThreadID, OldThreadID = sc.OldThreadID, Timestamp = new Tick()
                        {
                            Start = sc.Timestamp.Ticks
                        }
                    });
                }
            }

            SynchronizationMap syncMap = new SynchronizationMap(syncEvents);

            group.AddSynchronization(syncMap);

            Group = group;
        }
示例#2
0
    static List<Entry> ReadEventList(BinaryReader reader, EventDescriptionBoard board)
    {
      int count = reader.ReadInt32();
      List<Entry> result = new List<Entry>(count);

      for (int i = 0; i < count; ++i)
        result.Add(Entry.Read(reader, board));
      
      return result;
    }