Pyperf

Latest version: v2.9.0

Safety actively analyzes 714875 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 10

0.9.3

--------------------------

* Fix the Windows support.
* system: Don't try to read or write CPU frequency when the
/sys/devices/system/cpu/cpu0/cpufreq/ directory doesn't exist. For example,
virtual machines don't have this directory.
* Fix a ``ResourceWarning`` in ``BenchmarkSuite.dump()`` for gzip files.

0.9.2

--------------------------

* Issue 15: Added ``--no-locale`` command line option and locale environment
variables are now inherited by default.
* Add :meth:`Runner.timeit` method.
* Fix ``stats`` command: display again statistics on the whole benchmark suite.
* Fix a ResourceWarning if interrupted: Runner now kills the worker process
when interrupted.
* ``compare`` and ``compare_to``: add percent difference to faster/slower
* Rewrite timeit internally: copy code from CPython 3.7 and adapt it to
PyPy.

0.9.1

--------------------------

* ``system tune`` now also sets the maximum sample rate of perf event.
* ``system show`` command now also displays advices, not only ``system tune``
* ``system`` now detects when running on a laptop with the power cable
unplugged.
* ``system tune`` now handles errors when /dev/cpu/N/msr device is missing:
log an error suggesting to load the ``msr`` kernel module
* Fix a ResourceWarning in Runner._spawn_worker_suite(): wait until the worker
completes.

0.9.0

--------------------------

Enhancements:

* Runner doesn't ignore worker stdout and stderr anymore. Regular ``print()``
now works as expected.
* ``system`` command: Add a new ``--affinity`` command line option
* check and system emit a warning if nohz_full is used with the intel_pstate
driver.
* ``collect_metadata``: On CPUs not using the intel_pstate driver, don't run
the cpupower command anymore to check if the Turbo Boost is enabled. It
avoids to spawn N processes in each worker process, where N is the number of
CPUs used by the worker process. The ``system`` command can be used to tune
correctly Turbo Boost, or just to check the state of Turbo Boost.

Changes:

* system: tune stops the irqbalance service and sets the CPU affinity of
interruptions (IRQ).
* The ``--stdout`` internal option has been removed, replaced by a new
``--pipe`` option. Workers can now use stdout for regular messages.
* ``get_dates()`` methods now return ``None`` rather than an empty tuple
if runs don't have the ``date`` metadata.

0.8.3

--------------------------

Enhancement:

* New ``system tune`` command to tune the system for benchmarks: disable Turbo
Boost, check isolated CPUs, set CPU frequency, set CPU scaling governor to
"performance", etc.
* Support reading and writing JSON files compressed by gzip: use gzip
if the filename ends with ``.gz``
* The detection of isolated CPUs now works also on Linux older than 4.2:
``/proc/cmdline`` is now parsed to read the ``isolcpus=`` option
if ``/sys/devices/system/cpu/isolated`` sysfs doesn't exist.

Backward incompatible changes:

* JSON file produced by perf 0.8.3 cannot be read by perf 0.8.2 anymore.
* Remove the Metadata class: values of get_metadata() are directly metadata
values.
* Drop support for JSON produced with perf 0.7.3 and older. Use perf 0.8.2
to convert old JSON to new JSON.

Optimizations:

* Loading a large JSON file is now 10x faster (5 sec => 500 ms).
* Optimize ``Benchmark.add_run()``: don't recompute common metadata at each
call, but update existing common metadata.
* Don't store dates of metadata as datetime.datetime but strings to optimize
``Benchmark.load()``

0.8.2

--------------------------

* Fix formatting of benchmark which only contains calibration runs.

Page 6 of 10

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.