private CustomTiming CreateCustomTiming(SerializableCustomTiming sourceCustomTiming) { // ensure parentId ProfilingSession.ProfilingSessionContainer.CurrentSessionStepId = sourceCustomTiming.ParentId; var customTiming = new CustomTiming(this, sourceCustomTiming.Type, sourceCustomTiming.Name) { DurationMilliseconds = sourceCustomTiming.DurationMilliseconds, ExecuteType = sourceCustomTiming.ExecuteType, StartMilliseconds = sourceCustomTiming.StartMilliseconds, Sort = sourceCustomTiming.Sort, Tags = sourceCustomTiming.Tags == null ? null : new TagCollection(sourceCustomTiming.Tags), InputData = sourceCustomTiming.InputData, InputSize = sourceCustomTiming.InputSize, OutputSize = sourceCustomTiming.OutputSize, OutputStartMilliseconds = sourceCustomTiming.OutputStartMilliseconds }; ProfilingSession.ProfilingSessionContainer.CurrentSessionStepId = null; return customTiming; }
void IProfiler.AddCustomTiming(CustomTiming customTiming) { throw new NotImplementedException(); }
void IProfiler.AddCustomTiming(CustomTiming customTiming) { AddCustomTiming(customTiming); }
/// <summary> /// Saves a custom timing. /// </summary> /// <param name="profiler">The profiler.</param> /// <param name="customTiming">The custom timing.</param> protected virtual void SaveCustomTiming(IProfiler profiler, CustomTiming customTiming) { if (profiler == null || customTiming == null) { return; } try { var customData = new CustomTimingData(); SetBasicTimingProperties(customTiming, customData); customData.SessionId = profiler.Id; customData.InputSize = customTiming.InputSize; customData.InputData = customTiming.InputData; customData.OutputSize = customTiming.OutputSize; customData.OutputStartMilliseconds = customTiming.OutputStartMilliseconds; LogTimingData(customData); } catch (Exception ex) { _logger.Value.Error(ex, ex.Message); } }
/// <summary> /// Adds a custom timing to the raw custom timing collection. /// </summary> /// <param name="customTiming"></param> public virtual void AddCustomTiming(CustomTiming customTiming) { if (customTiming != null && _stopwatch.IsRunning) { _customTimings.Enqueue(customTiming); } }