コード例 #1
0
        private void AddMarkers(ProfileThread thread, Sample sample, int depth, long frequency)
        {
            var nameIndex = GetOrCreateMarker(sample.Name);
            var totalMS   = sample.CalcElapsedMilliseconds(frequency);
            var marker    = new ProfileMarker(nameIndex, totalMS, depth);

            thread.Add(marker);

            foreach (var child in sample.Children)
            {
                AddMarkers(thread, child, depth + 1, frequency);
            }
        }
コード例 #2
0
ファイル: ProfileThread.cs プロジェクト: lumpn/infinite-zelda
        public static ProfileThread ReadFrom(BinaryReader reader)
        {
            var threadIndex = reader.ReadInt32();
            var thread      = new ProfileThread(threadIndex);

            int count = reader.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                var marker = ProfileMarker.ReadFrom(reader);
                thread.markers.Add(marker);
            }

            return(thread);
        }
コード例 #3
0
        public static ProfileFrame ReadFrom(BinaryReader reader)
        {
            var startTimeMS = reader.ReadDouble();
            var frameMS     = reader.ReadSingle();
            var frame       = new ProfileFrame(startTimeMS, frameMS);

            int count = reader.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                var thread = ProfileThread.ReadFrom(reader);
                frame.threads.Add(thread);
            }

            return(frame);
        }
コード例 #4
0
        public Exporter(IEnumerable <Frame> frames, long frequency)
        {
            data.AddThreadName("1:Main Thread");

            foreach (var frame in frames)
            {
                var startTimeMS  = frame.CalcStartTime(frequency);
                var frameMS      = frame.CalcElapsedMilliseconds(frequency);
                var profileFrame = new ProfileFrame(startTimeMS, frameMS);
                data.Add(profileFrame);

                var thread = new ProfileThread(0);
                profileFrame.Add(thread);

                foreach (var child in frame.Root.Children)
                {
                    AddMarkers(thread, child, 1, frequency);
                }
            }
        }
コード例 #5
0
 public void Add(ProfileThread thread)
 {
     threads.Add(thread);
 }