// -------------------------------------------------------------------- public void StartTrace(string tag) { LastTrace = new ProfilerTrace() { Tag = tag, Init = DateTime.Now.TimeOfDay.TotalMilliseconds }; mUnfinishedTraces.Push(LastTrace); }
public void SetData(ref ProfilerTrace trace, ref FunctionHeatMap heatMap) { m_Trace = trace; m_HeatMap = heatMap; m_Name = new string[trace.Functions.Length]; m_NumSamples = new string[trace.Functions.Length]; m_Module = new string[trace.Functions.Length]; m_Addresses = new string[trace.Functions.Length]; Reload(); }
public void SetData(ref ProfilerTrace trace, NativeArray <FunctionSampleData> functionSamples) { m_Trace = trace; m_FunctionSamples = functionSamples; m_Name = new string[trace.Functions.Length]; m_NumSamplesSelf = new string[trace.Functions.Length]; m_NumSamplesTotal = new string[trace.Functions.Length]; m_Module = new string[trace.Functions.Length]; m_Addresses = new string[trace.Functions.Length]; Reload(); }
// -------------------------------------------------------------------- public void EndTrace() { LastTrace.End = DateTime.Now.TimeOfDay.TotalMilliseconds; mTraces.Add(LastTrace); mUnfinishedTraces.Pop(); if (mUnfinishedTraces.Count > 0) { LastTrace = mUnfinishedTraces.Peek(); } }
private void Deserialize <T>(MemoryStream stream, string channel) { var obj = Serializer.Deserialize <ChannelMessage <T> >(stream); if (obj != null) { var jss = new JavaScriptSerializer( ); jss.MaxJsonLength = int.MaxValue; jss.RecursionLimit = int.MaxValue; var jsonObject = jss.Deserialize <dynamic>(obj.Message.ToString( )) as IDictionary <string, object>; if (jsonObject != null) { var root = new ProfilerTrace(jsonObject, "web.png"); _dispatcher.Invoke(() => ProfilerTraceModel.Add(root, Guid.Empty)); var child = jsonObject["Root"] as IDictionary <string, object>; Parse(child, root.Id); } } }
public void SetData(ref ProfilerTrace trace, TopDownTreeData treeData) { m_Trace = trace; m_TreeData = treeData; int n = treeData.Frames.Length; if (m_Name?.Length == n) { System.Array.Clear(m_Name, 0, m_Name.Length); System.Array.Clear(m_TotalSamples, 0, m_TotalSamples.Length); System.Array.Clear(m_SelfSamples, 0, m_SelfSamples.Length); System.Array.Clear(m_Module, 0, m_Module.Length); System.Array.Clear(m_Addresses, 0, m_Addresses.Length); } else { m_Name = new string[n]; m_TotalSamples = new string[n]; m_SelfSamples = new string[n]; m_Module = new string[n]; m_Addresses = new string[n]; } Reload(); }
private void Parse(IDictionary <string, object> obj, Guid parent) { var trace = new ProfilerTrace(obj); _dispatcher.Invoke(() => ProfilerTraceModel.Add(trace, parent)); object children; if (obj.TryGetValue("Children", out children)) { if (children != null) { var childrenItems = children as object[]; foreach (var childItem in childrenItems) { var childDictionary = childItem as IDictionary <string, object>; Parse(childDictionary, trace.Id); } } } object customTimings; if (obj.TryGetValue("CustomTimings", out customTimings)) { if (customTimings != null) { var timingDictionary = customTimings as IDictionary <string, object>; if (timingDictionary != null) { object sqlTimings; if (timingDictionary.TryGetValue("sql", out sqlTimings)) { if (sqlTimings != null) { var sqlArray = sqlTimings as object[]; if (sqlArray != null) { foreach (var sqlObj in sqlArray) { var sql = sqlObj as IDictionary <string, object>; var sqlTrace = new SqlProfilerTrace(sql); _dispatcher.Invoke(() => ProfilerTraceModel.Add(sqlTrace, parent)); } } } } object redisTimings; if (timingDictionary.TryGetValue("redis", out redisTimings)) { if (redisTimings != null) { var redisArray = redisTimings as object[]; if (redisArray != null) { foreach (var redisObj in redisArray) { var redis = redisObj as IDictionary <string, object>; var sqlTrace = new RedisProfilerTrace(redis); _dispatcher.Invoke(() => ProfilerTraceModel.Add(sqlTrace, parent)); } } } } } } } }
public void ClearData() { m_FunctionSamples = default; m_Trace = default; }
public void ClearData() { m_Trace = default; m_TreeData = default; }