- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Start profiling
- Connect to profiled application
- Capturing snapshots
- Solving performance problems
- CPU profiling
- Threads
- Memory profiling
- Garbage collection
- Exception profiling
- Probes: monitor higher level events
- Performance Charts
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Summary, snapshot annotation, automatic deobfuscation
- Time measurement (CPU time, wall time)
- Filters
- Snapshot directory customization
- Export of profiling results to HTML, CSV, XML, plain text
- Profiler API
- Profiler HTTP API
- Command line tool to control profiling
- Settings
Profiler architecture
YourKit .NET Profiler consists of two parts interacting via the network: profiler agent and profiler UI.
Profiler agent
Profiler agent (or simply agent) is a plugin for Common Language Runtime (CLR). It might be loaded into CLR on startup with help of special environment variables, or it might be attached to the running CLR later.
Agent uses operating system APIs and CRL profiling API to gather the performance data. To communicate with other applications the agent opens TCP/IP socket and listens for commands on it.
Profiler UI
Profiler UI (or simply UI) is a desktop application. UI can connect to profiler agent to change profiling modes and obtains live performance data. UI is able to save performance data to the snapshots for further off-line analyzes.
Networking
The communication between UI and agent is always performed via SSL encrypted TCP/IP connection. We use only standard protocols and technologies, that allows to proxy the traffic through the HTTPS and SOCKS proxies (Apache, Nginx, Squid, etc). UI is also able to build SSH tunnels to securely reach the agents inside closed private networks.
Thanks to standard protocols and public HTTP API, you can interact with the agent via a web browser or via command-line tools like cURL.