/// <summary> /// Initialises a new instance of the <see cref="MiniProfiler"/> class. /// Creates and starts a new MiniProfiler for the root <paramref name="url"/>, filtering <see cref="Timing"/> steps to <paramref name="level"/>. /// </summary> /// <param name="url"> /// The URL. /// </param> /// <param name="level"> /// The level. /// </param> public MiniProfiler(string url, ProfileLevel level = ProfileLevel.Info) { Id = Guid.NewGuid(); Level = level; SqlProfiler = new SqlProfiler(this); MachineName = Environment.MachineName; Started = DateTime.UtcNow; // stopwatch must start before any child Timings are instantiated _sw = Settings.StopwatchProvider(); Root = new Timing(this, null, url); }
/// <summary> /// Initialises a new instance of the <see cref="MiniProfiler"/> class. Creates and starts a new MiniProfiler /// for the root <paramref name="url"/>. /// </summary> public MiniProfiler(string url) { Id = Guid.NewGuid(); #pragma warning disable 612,618 Level = ProfileLevel.Info; #pragma warning restore 612,618 SqlProfiler = new SqlProfiler(this); MachineName = Environment.MachineName; Started = DateTime.UtcNow; // stopwatch must start before any child Timings are instantiated _sw = Settings.StopwatchProvider(); Root = new Timing(this, null, url); }
/// <summary> /// Creates a new Timing named 'name' in the 'profiler's session, with 'parent' as this Timing's immediate ancestor. /// </summary> public Timing(MiniProfiler profiler, Timing parent, string name) { this.Id = Guid.NewGuid(); Profiler = profiler; Profiler.Head = this; if (parent != null) // root will have no parent { parent.AddChild(this); } Name = name; _startTicks = profiler.ElapsedTicks; StartMilliseconds = profiler.GetRoundedMilliseconds(_startTicks); }
/// <summary> /// Creates a new Timing named 'name' in the 'profiler's session, with 'parent' as this Timing's immediate ancestor. /// </summary> public Timing(MiniProfiler profiler, Timing parent, string name, decimal? minSaveMs = null, bool? includeChildrenWithMinSave = false) { Id = Guid.NewGuid(); Profiler = profiler; Profiler.Head = this; if (parent != null) { // root will have no parent parent.AddChild(this); } Name = name; _startTicks = profiler.ElapsedTicks; _minSaveMs = minSaveMs; _includeChildrenWithMinSave = includeChildrenWithMinSave == true; StartMilliseconds = profiler.GetRoundedMilliseconds(_startTicks); }
/// <summary> /// Add the parameter 'timing' to this Timing's Children collection. /// </summary> /// <remarks> /// Used outside this assembly for custom deserialization when creating an <see cref="Storage.IStorage"/> implementation. /// </remarks> public void AddChild(Timing timing) { if (Children == null) Children = new List<Timing>(); Children.Add(timing); timing.ParentTiming = this; }
internal void RemoveChild(Timing timing) { if (Children != null) { Children.Remove(timing); } }
/// <summary> /// Add the parameter 'timing' to this Timing's Children collection. /// </summary> /// <remarks> /// Used outside this assembly for custom deserialization when creating an <see cref="Storage.IStorage"/> implementation. /// </remarks> public void AddChild(Timing timing) { if (Children == null) Children = new List<Timing>(); Children.Add(timing); timing.ParentTiming = this; timing.ParentTimingId = Id; timing.MiniProfilerId = Profiler.Id; }