Skip to content

Latest commit

 

History

History
45 lines (26 loc) · 3.42 KB

ProfilerAgentSelectionGuide.md

File metadata and controls

45 lines (26 loc) · 3.42 KB

Profiling Agent Selection Guide

Welcome to the Profiling Agent Selection Guide! Profiling is an essential step in optimizing your application’s performance. This document will help you choose the best profiler agent based on your needs, environment, and specific use case.

There are 2 major profiling technologies we supported: ETW and EventPipe. ETW works only on Windows. EventPipe works wherever .NET runtime exists.

A rule of thumb is that if you are targeting .NET Framework, use ETW profiler. If you are targeting .NET, use EventPipe.

Of course, it's not one size fit for all. There are more to consider, please find more details below.

ETW

If you are targeting .NET Framework, you will have to use ETW profiler. It can be turned on for the following Azure services. Click on the links to learn more about turning it on:

There's no code change needed for your application. The profiler runs out of proc, and the trace file is heavier.

EventPipe

If you are targeting .NET, .NET 8 for example, you can still choose to use ETW profiler for the environments listed above, or you can choose to use EventPipe Profiler too.

⚠️ Tip: Do NOT use both profiler at the same time considering the overhead.

If you are planning to host your applications in Linux, or run your application inside containers, use EventPipe Profiler. Some well known host platforms like:

There are 2 flavors of the EventPipe profilers, it depends on the Application Insights SDKs you pick.

You will need to add reference to NuGet packages and redeploy your application for those Profiler Agents to work. These profiler agents runs in-proc with your application, and are lightweight.

Get more support

Feel free to file an issue if you still have questions on which profiler agent to pick.