The major profiling overhead comes
from event tracing: each tracepoint saves in memory a timestamp
and a small amount of event information that is at most tens of
bytes. While the overhead is negligible in tracing the relatively
sparse system events, it can be overwhelming in tracing function
invocations.