Language and Library Versions for Profiler Features

The following tables summarize the features available for each language runtime.

  • Minimum versions are required to access at least one feature. If you have an earlier version, profiling is not available.
  • Feature-complete versions give you access to all supported features. It’s usually best if you update to the latest version of all tracing libraries.
For more details, click the language heading in any table to go that language's setup page.

Runtime and tracing library versions

To use the Datadog Profiler, use at least the minimum versions summarized in the following table. For specific profile type availability by version, see Profile types.

JavaPythonGoRubyNode.js.NETPHPRust/C/C++
Minimum runtime versionJDK 8+Python 2.7+previous major Go releaseRuby 2.5+Node 14+.NET Core 2.1+, .NET 5+, .NET Framework 4.6.1+PHP 7.1+
Feature-complete runtime versionJDK 11+Python 3.6+latest major Go releaseRuby 3.2+Node 18+.NET 7+PHP 8.0+
Feature-complete tracing library versionlatestlatestlatestlatestlatestlatestlatestlatest

Profile types

The following table shows profile type availability by language. For optimal performance and access to all features, Datadog recommends using the latest version of the tracing library for your language. If a specific runtime version isn’t indicated, the profile type is available with the minimum runtime version listed in the Runtime and tracing library versions.

JavaPythonGoRubyNode.js.NETPHPRust/C/C++
CPU

The time each function/method spent running on the CPU.

PREVIEW indicates an early access version of a major product or feature that you can opt into before its official release.Glossary
Exceptions

The number of exceptions raised, including those caught.

Python 3.7+.NET 5+
Allocation

Number and sizes of memory allocations made by each function/method, including allocations which were subsequently freed.

JDK 11+Python 3.6+PREVIEW indicates an early access version of a major product or feature that you can opt into before its official release.Glossary
.NET 6+
PREVIEW indicates an early access version of a major product or feature that you can opt into before its official release.Glossary
Heap

The amount of heap memory allocated that remains in use.

JDK 11+Python 3.6+alpha
Ruby 3.1+
PREVIEW indicates an early access version of a major product or feature that you can opt into before its official release.Glossary
.NET 7+
PREVIEW indicates an early access version of a major product or feature that you can opt into before its official release.Glossary
Wall time

The elapsed time spent in each function/method. Elapsed time includes time when code is running on CPU, waiting for I/O, and anything else that happens while the function/method is running.

Locks

The time each function/method spent waiting for and holding locks, and the number of times each function acquired a lock.

.NET 5+
I/O

The time each method spent reading from and writing to files and sockets.

PREVIEW indicates an early access version of a major product or feature that you can opt into before its official release.Glossary

Other features

The following table outlines additional profiling features by language. For full functionality and best performance, Datadog recommends using the latest version of your language’s tracing library. If a specific runtime version isn’t indicated, the feature is available with the minimum runtime version listed in the Runtime and tracing library versions.

JavaPythonGoRubyNode.js.NETPHPRust/C/C++
Trace to Profiling integration

Find specific lines of code related to performance issues. Learn more

Endpoint Profiling

Identify endpoints that are bottlenecks or responsible for heavy resource consumption. Learn more

Timeline View

Surface time-based patterns and work distribution over the period of a span. Learn more

Further reading

Additional helpful documentation, links, and articles: