public CallNodeModel(FrameDetailViewModel owner, PerfNodeStats node, ProfileThread thread, int nodeKey) : this(owner) { MergedStats = node; NodeKey = nodeKey; InclTime = thread.TimeMs; ExclTime = thread.TimeMs - thread.GetChildTimeMs(); Calls = 1; CallRecordIndex = thread.StartIndex; LazyLoading = thread.NodeCount != 0; }
public void ProfileData_AddThreadName_AddsThreadAndContainsName() { var data = new ProfileData(); var threadNames = new List <string>() { "Thread01", "Thread02", "Thread03", "Thread04" }; var threadDict = new Dictionary <string, ProfileThread>(); for (int i = 0; i < 10; ++i) { int expectedIndex = i % threadNames.Count; string threadName = threadNames[expectedIndex]; ProfileThread thread; if (!threadDict.TryGetValue(threadName, out thread)) { thread = new ProfileThread(); threadDict.Add(threadName, thread); } var marker = new ProfileMarker() { msMarkerTotal = 0.5f, depth = i }; thread.Add(marker); data.AddThreadName(threadName, thread); Assert.IsTrue(expectedIndex == thread.threadIndex, "Index mismatch at: " + i + " , " + thread.threadIndex);; } foreach (var curThread in threadDict) { var curName = data.GetThreadName(curThread.Value); Assert.IsTrue(threadNames.Contains(curName)); } }