A profiler observes software while it runs and attributes CPU behavior, memory allocation, or other resource consumption to program operations. It supports targeted investigations into efficient code, small memory footprints, energy use, and environmental impact. section 8.5.2
Choose a profiler suited to the language and investigation:
- Java: VisualVM, JDK Flight Recorder with Mission Control, or Async-Profiler. section 8.5.2
- Python: py-spy samples live processes without code changes; .NET, C#, and C++ developers can use Visual Studio or PerfView. section 8.5.2
- Go, Rust, and Node.js: use pprof, cargo-flamegraph, or Clinic.js respectively. section 8.5.2
Profilers can add overhead, require manual setup, and produce substantial diagnostic data. Use them for focused investigations rather than continuous daily measurement. section 8.5.2


