示例#1
0
			public Store (ProfilerEventHandler data, DisplayOptions options, StatisticalHitItemCallInformation[] infos) : base (data, options)
			{
				nodes = new List<Node> ();
				foreach (StatisticalHitItemCallInformation info in infos)
					nodes.Add (new CallInfoNode (this, null, info));
				nodes.Sort (CallInfoNode.CompareByCalls);
			}
示例#2
0
		public AllocationsView (ProfilerEventHandler data, DisplayOptions options) : base ()
		{
			TreeView view = new TreeView (new TreeModelAdapter (new AllocationsStore (data, options)));
			view.AppendColumn ("Cost", new CellRendererText (), "text", 1);
			TreeViewColumn col = new TreeViewColumn ("Class/Allocator", new CellRendererText (), "text", 0);
			view.AppendColumn (col);
			view.ExpanderColumn = col;
			view.Show ();
			Add (view);
		}
示例#3
0
		public CallsStore (ProfilerEventHandler data, DisplayOptions options) : base (data, options)
		{
			if (data == null || (data.Flags & ProfilerFlags.METHOD_EVENTS) == 0)
				return;
			
			nodes = new List<Node> ();
			foreach (StackTrace frame in data.RootFrames) {
				total_clicks += frame.TopMethod.Clicks;
				nodes.Add (new CallsNode (this, null, frame));
			}
		}
示例#4
0
		public StatList (ProfilerEventHandler data, DisplayOptions options) : base ()
		{
			store = new StatStore (data, options);
			Model = new TreeModelAdapter (store);
			Selection.SelectPath (new TreePath ("0"));
			AppendColumn ("Percent", new CellRendererText (), "text", 1);
			TreeViewColumn col = new TreeViewColumn ("Method", new CellRendererText (), "text", 0);
			AppendColumn (col);
			ExpanderColumn = col;
			options.Changed += delegate { Model = new TreeModelAdapter (new StatStore (data, options)); };
		}
示例#5
0
		public CallsView (ProfilerEventHandler data, DisplayOptions options) : base ()
		{
			TreeView view = new TreeView (new TreeModelAdapter (new CallsStore (data, options)));
			view.AppendColumn ("Cost", new CellRendererText (), "text", 1);
			TreeViewColumn col = new TreeViewColumn ("Method", new CellRendererText (), "text", 0);
			view.AppendColumn (col);
			view.ExpanderColumn = col;
			view.Show ();
			options.Changed += delegate { view.Model = new TreeModelAdapter (new CallsStore (data, options)); };
			Add (view);
		}
示例#6
0
		public StatStore (ProfilerEventHandler data, DisplayOptions options) : base (data, options)
		{
			nodes = new List<Node> ();
			foreach (IStatisticalHitItem item in data.StatisticalHitItems) {
				if (item.StatisticalHits <= 0)
					continue;
				total_hits += item.StatisticalHits;
				nodes.Add (new StatNode (this, null, item));
			}
			nodes.Sort (StatNode.CompareByHits);
		}
示例#7
0
		public StatView (ProfilerEventHandler data, DisplayOptions options)
		{
			list = new StatList (data, options);
			ScrolledWindow sw = new ScrolledWindow ();
			sw.Add (list);
			sw.ShowAll ();
			detail = new StatDetail (data, options);
			detail.CurrentItem = list.SelectedItem;
			list.Selection.Changed += delegate { detail.CurrentItem = list.SelectedItem; };
			Add1 (sw);
			Add2 (detail);
			Position = 200;
		}
示例#8
0
		public AllocationsStore (ProfilerEventHandler data, DisplayOptions options) : base (data, options)
		{
			if (data == null || (data.Flags & ProfilerFlags.CLASS_EVENTS) == 0)
				return;

			nodes = new List<Node> ();
			LoadedClass[] classes = data.LoadedElements.Classes;
			Array.Sort (classes, LoadedClass.CompareByAllocatedBytes);
			Array.Reverse (classes);
			foreach (LoadedClass c in classes) {
				if (c.AllocatedBytes > 0) {
					total_bytes += c.AllocatedBytes;
					nodes.Add (new ClassNode (this, null, c));
				}
			}
		}
示例#9
0
		protected ProfileStore (ProfilerEventHandler data, DisplayOptions options)
		{
			this.data = data;
			this.options = options;
		}
示例#10
0
		public StatDetail (ProfilerEventHandler data, DisplayOptions options)
		{
			this.data = data;
			this.options = options;
			options.Changed += delegate { Refresh (); };
			Label callers_lbl = new Label (Mono.Unix.Catalog.GetString ("Callers"));
			callers_lbl.Show ();
			Label calls_lbl = new Label (Mono.Unix.Catalog.GetString ("Calls"));
			calls_lbl.Show ();
			callers = new PageView ();
			callers.Show ();
			calls = new PageView ();
			calls.Show ();
			AppendPage (calls, calls_lbl);
			AppendPage (callers, callers_lbl);
		}
 protected ProfileStore(ProfilerEventHandler data, DisplayOptions options)
 {
     this.data    = data;
     this.options = options;
 }