Skip to content

Releases: intel/gprofiler

1.2.3

25 Oct 16:49
36b088a

Choose a tag to compare

  • Build gProfiler as an Aarch64 executable

1.2.2

11 Oct 09:50
c9a1fc4

Choose a tag to compare

  • Python: upgrade py-spy to v0.3.10 and PyPerf to v1.1.2
  • Java: upgrade to async-profiler v2.5 and allow using CPU mode with --java-async-profiler-mode=cpu.
  • Disable PHP profiling by default (pass --php-mode phpspy to enable).
  • Write metadata & metrics to local output files (in --output-dir mode).
  • Limit the remote logs buffer size (avoid buffer growth if logs aren't being uploaded).
  • Ruby & Python: improve removal handling of temporary files.

1.2.1

19 Sep 10:43
55100fa

Choose a tag to compare

  • Upgrade to py-spy 0.3.9
  • Get process comm from /proc/PID/status instead of /proc/PID/comm (as the latter is missing in old kernels)
  • python: py-spy: Use SIGKILL to stop py-spy when hanging

1.2.0

29 Aug 14:09
f519f12

Choose a tag to compare

  • Initial Aarch64 support (as a Docker container)
  • Exit with 0 if gProfiler's mutex is already taken.
  • Disable profilers whose start() method fails (instead of exiting gProfiler)
  • Use /proc/pid/comm as the first stack of process profiles
  • java: Allow skipping the JDK version check
  • php: Log stderr & stdout if startup fails
  • python: PyPerf: Allow passing 0 for --pyperf-user-stacks-pages

1.1.9

10 Aug 14:28
f6b448a

Choose a tag to compare

  • Upgrade PyPerf to v1.1.1 to fix a memory leak
  • Add memory usage logging to gProfiler's container (to be able to track gProfiler's total memory usage)

1.1.8

05 Aug 17:34
bebf900

Choose a tag to compare

  • Add metrics & metadata collection: gProfiler collects system metrics (CPU & memory utilization) & static metadata (OS version, hardware info, cloud metadata). These will augment the data displayed in the backend.
  • java: Identify Java process to profile by existence of libjvm.so in their /proc/pid/maps.
  • java: Allow sending detailed native samples in case there are no debug symbols; the extra data allows to add proper symbols information in the backend. Currently disabled, until backend support will be added.
  • python: Add timeout to py-spy runs
  • Bugfix: attempt to fix-up numerous output files situation of PyPerf (delete all & use the latest)
  • Print nicer exceptions: if Python processes go down before profiling starts, if ldd is missing, if gProfiler failed to take its lock due to an error.

1.1.7

21 Jul 14:53
7f348dc

Choose a tag to compare

  • Run perf continuously - instead of re-starting perf each profiling session, we now run it continuously and request it to dump data each session (improves accuracy & performance)
  • Preliminary NodeJS support - this requires running your Node app with some extra flags, and to add --nodejs-mode perf to gProfiler's arguments
  • Native stacks for Python (PyPerf based) - PyPerf now collects native stacks (CPython runtime, library DSOs, ...) in addition to the Python stacks & kernel stacks

1.1.6

13 Jul 14:19
54490a5

Choose a tag to compare

  • java: Allow different gProfiler versions to use different APs (#137)
  • java: Build async-profiler with -static-libstdc++ (#139)

1.1.5

30 Jun 14:26
ccb9bda

Choose a tag to compare

python, ruby: Remove collapsed files after reading (#128)

* merge: Add parse_and_remove_one_collapsed()

* python: Use parse_and_remove_one_collapsed()

Fixes a regression: we didn't remove old collapsed files.

* ruby: Use parse_and_remove_one_collapsed()

Fixes same bug from Python.

1.1.4

28 Jun 12:16
e0c29d3

Choose a tag to compare

Server Logging (#119)

* Implement server logging

* Use new logger adapters across project

* Add server logging section to README.md

* logging: allow not sending extra to server

* Server Logging: Change environment variable name

* ruby: use logger adapter

* gprofiler: bump version