private void DoTimingSample(TimingSample sample, int index) { using (new EditorGUILayout.HorizontalScope((index & 1) == 1 ? Styles.backgroundOdd : Styles.backgroundEven, GUILayout.Height(TIMING_ITEM_HEIGHT))) { EditorGUILayout.LabelField(sample.Name, GUILayout.ExpandWidth(true), GUILayout.MinWidth(150f)); DrawLine(); EditorGUILayout.LabelField(sample.StackClass, GUILayout.ExpandWidth(false), GUILayout.Width(100f)); DrawLine(); EditorGUILayout.LabelField(((float)sample.Duration.Ticks / loadedFile.TotalTime.Ticks).ToString("00.0%"), GUILayout.ExpandWidth(false), GUILayout.Width(50f)); DrawLine(); EditorGUILayout.LabelField(((float)sample.Duration.Ticks / sample.Calls / loadedFile.TotalTime.Ticks).ToString("00.0%"), GUILayout.ExpandWidth(false), GUILayout.Width(50f)); DrawLine(); EditorGUILayout.LabelField(sample.Duration.GetTimeFormated(), GUILayout.ExpandWidth(false), GUILayout.Width(80f)); DrawLine(); EditorGUILayout.LabelField(new TimeSpan(sample.Duration.Ticks / sample.Calls).GetTimeFormated(), GUILayout.ExpandWidth(false), GUILayout.Width(80f)); DrawLine(); EditorGUILayout.LabelField(sample.Calls.ToString("000000"), GUILayout.ExpandWidth(false), GUILayout.Width(60f)); } }
private static int Sort(TimingSample a, TimingSample b) { switch (currentSorting.Value) { case Sorting.Name: return(string.Compare(a.Name, b.Name)); case Sorting.Class: return(string.Compare(a.StackClass, b.StackClass)); case Sorting.TotalTime: case Sorting.TotalPercent: return((int)(b.Duration.Ticks - a.Duration.Ticks)); case Sorting.SelfTime: case Sorting.SelfPercent: return((int)(b.Duration.Ticks / b.Calls - a.Duration.Ticks / a.Calls)); case Sorting.Calls: return(b.Calls - a.Calls); case Sorting.InverseName: return(string.Compare(b.Name, a.Name)); case Sorting.InverseClass: return(string.Compare(b.StackClass, a.StackClass)); case Sorting.InverseTotalTime: case Sorting.InverseTotalPercent: return((int)(a.Duration.Ticks - b.Duration.Ticks)); case Sorting.InverseSelfTime: case Sorting.InverseSelfPercent: return((int)(a.Duration.Ticks / a.Calls - b.Duration.Ticks / b.Calls)); case Sorting.InverseCalls: return(a.Calls - b.Calls); default: return(0); } }