Section 3 of 8 APM & Security
Compile-time AOP vs CLR profiler
How ArgusLogs and Dynatrace attach to method boundaries drives performance, complexity, and deployment requirements.
Compile-time AOP (ArgusLogs)
- Mechanics — Post-build MSIL weaver (argus-weaver) injects OnEntry / OnSuccess / OnException / OnExit into decorated methods.
- Performance — Zero runtime compilation overhead; woven IL is JIT-compiled at native speed with no reflection lookup tables.
- Security & debugger protection — Aspects can apply MethodImpl(NoInlining | NoOptimization) and DebuggerHidden to reduce tampering/inspection surface.
- Deployment — Standard NuGet build targets; no root privileges or host agent install.
Runtime CLR profiler hooks (Dynatrace)
- Mechanics — Native OS agent registers as a COM profiler (COR_PROFILER / CORECLR_PROFILER) and rewrites IL in memory at JIT time.
- Performance — Variable latency: larger rewritten IL trees, startup cost, profiler state overhead, and possible inlining disruption.
- Security & integrity — Full memory visibility; can conflict with hardening policies or obfuscation tools.
- Deployment — Requires admin/root to install OneAgent and configure OS profiling hooks.