Пример #1
0
        private void OutputReport(ProfilerNode node)
        {
            if (node == rootNode)
            {
                Debug.WriteLine("PROFILED TREE - CALLS - TIME SPENT - PERCENTAGE");
            }
            StringBuilder output = new StringBuilder();
            string        sign   = "";

            for (int i = 0; i < node.Depth; i++)
            {
                sign += " ";
            }
            sign += node.Childern.Count > 0 ? "+" : "-";
            output.Append(sign);
            output.Append(" ");
            output.Append(node.Name);
            output.Append(" - ");
            int calls = node.Stats.Calls;

            output.Append(calls);
            output.Append(" - ");
            output.Append(node.Stats.TotalTime);
            output.Append(" - ");
            output.Append(node.Stats.TotalTime / node.Stats.Calls);
            output.Append(" - ");
            output.Append(node.Stats.Percentage);
            Debug.WriteLine(output.ToString());

            for (int i = 0; i < node.Childern.Count; i++)
            {
                this.OutputReport(node.Childern[i]);
            }
        }
Пример #2
0
 public void Begin(string name)
 {
     if (currNode.Name != name)
     {
         ProfilerNode n = currNode.GetChildByName(name);
         if (n == null)
         {
             n = new ProfilerNode(currNode.Depth + 1);
             this.nodes.Add(n);
             currNode.Childern.Add(n);
             n.Parent = currNode;
         }
         if (n.Name == null || n.Name.Length == 0)
         {
             n.Name = name;
         }
         currNode = n;
         currNode.Begin();
     }
     else
     {
         currNode.End();
         currNode.Begin();
     }
 }
Пример #3
0
        public void End(string name)
        {
            currNode.End();
            ProfilerNode n = currNode.Parent;

            if (n != null)
            {
                currNode = n;
            }
        }
Пример #4
0
        private Profiler(int frameFrequency)
        {
            this.frameFrequency = frameFrequency;
            this.frameCounter   = 0;

            this.nodes = new List <ProfilerNode>();

            this.rootNode      = new ProfilerNode(0);
            this.rootNode.Name = "root";
            this.currNode      = this.rootNode;
            this.nodes.Add(this.currNode);
        }