Call graph percentages do not add up exactly
Published 28 August 2014
After creating a call graph for a method in ANTS Performance Profiler, the percentage of time may not add up exactly across one row to match the percentage of time taken by the parent method.
In the example graph, the percentages in the second row should add up to "100%", but they add up to 98.9%.
| Program.Main (25.365) |
____________________
|
| Application.Run 71.6% | | ctor 22.9% | | JIT Overhead 2.4% | | MethodA 1.2% | | MethodB 0.5% | | MethodC 0.3% |
There are a number of reasons why the percentages do not add up.
- Rounding on very small percentages
- Skew caused by ANTS Performance Profiler's overhead calculations
- Code that doesn't correspond to lines of code in the program, for example Visual Basic error handling code added automatically by the language compiler or the implicit Dispose() call added by the C# language after exiting a using block.