Exemplo n.º 1
0
            void FilterCurrentSetByCurrentMethod()
            {
                LoadedMethod currentMethod = (LoadedMethod)Explorer.CurrentListSelection.Statistics.Subject;

                if (Explorer.CurrentSelection is HeapExplorerTreeModel.Node <HeapObject> )
                {
                    FilterCurrentSet <HeapObject> (new HeapItemWasAllocatedByMethod <HeapObject> (currentMethod));
                }
                if (Explorer.CurrentSelection is HeapExplorerTreeModel.Node <AllocatedObject> )
                {
                    FilterCurrentSet <AllocatedObject> (new HeapItemWasAllocatedByMethod <AllocatedObject> (currentMethod));
                }
            }
Exemplo n.º 2
0
        static void PrintExecutionTimeByCallStack(TextWriter writer, ProfilerEventHandler data, StackTrace stackFrame, double callerSeconds, int indentationLevel)
        {
            for (int i = 0; i < indentationLevel; i++)
            {
                writer.Write("    ");
            }
            LoadedMethod currentMethod  = stackFrame.TopMethod;
            double       currentSeconds = data.ClicksToSeconds(stackFrame.Clicks);

            writer.WriteLine("{0,5:F2}% ({1:F6}s, {2} calls) {3}.{4}", ((currentSeconds / callerSeconds) * 100), currentSeconds, stackFrame.Calls, currentMethod.Class.Name, currentMethod.Name);
            foreach (StackTrace calledFrame in stackFrame.CalledFrames)
            {
                PrintExecutionTimeByCallStack(writer, data, calledFrame, currentSeconds, indentationLevel + 1);
            }
        }