Different language runtimes support different profiling capabilities. Below is a breakdown of the profiling types available for each supported language.

Go

Profiling Type Description
CPU Profiling Measures CPU time spent in each function
Delay Profiling Captures time spent waiting (e.g., on I/O or synchronization)
Lock Contentions Measures time spent waiting to acquire locks
Goroutine Profiling Captures the state of all goroutines
Allocation Space Measures total memory allocated
Allocation Objects Counts the total number of objects allocated
In-use Memory Space Measures memory currently in use
In-use Objects Counts objects currently in use
Samples Number of stack samples collected

Node.js

Profiling Type Description
CPU Profiling Measures CPU time spent in each function
Wall Measures wall-clock time (real elapsed time)
Timeline Captures execution timeline for async operations
Samples Number of stack samples collected
Space Measures heap memory allocations
Objects Counts heap-allocated objects

Java

Profiling Type Description
CPU Measures CPU time spent in each function
ALLOC Tracks memory allocations
LOCK Measures lock contention and wait times
WALL Measures wall-clock time
CTIMER CPU timer-based profiling
ITIMER Interval timer-based profiling