Code profiling is currently available as a beta feature. It is only supported by the .NET Framework agent.
Code profiling provides extra insight into code level execution time that is otherwise not captured by auto-instrumentation. See code profiling for general information.
AppOptics .NET agent version 3.7.0 or later is required for code profiling.
- What profiling information is collected by the .NET agent?
- Why don't all traces have profiling information?
- What are the overhead concerns?
- What is the "Unknown" path shown in the profiles?
- Profiling information has granularity base on profiling interval (default is 50ms), and is configurable in profiler settings.
- .NET class name and method name will be collected.
- Asynchronous operations that are part of a request will not have profiling information captured.
- Code profiling is disabled by default, please refer to enabling code profiling.
- Traces with duration shorter than the configured profiling interval (default is 50ms) might not have profiling information.
- Overhead might be more noticeable in systems with high number of threads. To reduce overhead, increase code profiling interval such that the agent would take snapshots less frequently.
- "Unknown" accounts for occasions where the agent failed to obtain snapshots on the given interval. Various conditions can trigger missing snapshots, for example high CPU load.