Pyperf

Latest version: v2.9.0

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

Scan your dependencies

Page 8 of 10

0.7.8

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

* Worker child processes are now run in a fresh environment: environment
variables are removed, to enhance reproducibility.
* Add ``--inherit-environ`` command line argument.
* metadata: add ``python_cflags``, fix ``python_version`` for PyPy and
add also the Mercurial version into ``python_version`` (if available)

0.7.7

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

* Reintroduce TextRunner._spawn_worker_suite() as a temporary workaround
to fix the pybench benchmark of the performance module.

0.7.6

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

Tracking memory usage now works correctly on Linux and Windows. The calibration
is now done in the first worker process.

* ``--tracemalloc`` and ``--track-memory`` now use the memory peak as the
unique sample for the run.
* Rewrite code to track memory usage on Windows. Add
``mem_peak_pagefile_usage`` metadata. The ``win32api`` module is no more
needed, the code now uses the ``ctypes`` module.
* ``convert``: add ``--remove-all-metadata`` and ``--update-metadata`` commands
* Add ``unit`` metadata: ``byte``, ``integer`` or ``second``.
* Run samples can now be integer (not only float).
* Don't round samples to 1 nanosecond anymore: with a large number of loops
(ex: 2^24), rounding reduces the accuracy.
* The benchmark calibration is now done by the first worker process

0.7.5

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

* Add ``Benchmark.update_metadata()`` method
* Warmup samples can now be zero. TextRunner now raises an error if a sample
function returns zero for a sample, except of calibration and warmup samples.

0.7.4

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

* Support PyPy
* metadata: add ``mem_max_rss`` and ``python_hash_seed``
* Add :func:`perf.python_implementation` and :func:`perf.python_has_jit`
functions
* In workers, calibration samples are now stored as warmup samples.
* With a JIT (PyPy), the calibration is now done in each worker. The warmup
step can compute more warmup samples if a raw sample is shorter than the
minimum time.
* Warmups of Run objects are now lists of (loops, raw_sample) rather than lists
of samples. This change requires a change in the JSON format.

0.7.3

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

* add a new ``slowest`` command
* convert: add ``--extract-metadata=NAME``
* add ``--tracemalloc`` option: use the ``tracemalloc`` module to track
Python memory allocation and get the peak of memory usage in metadata
(``tracemalloc_peak``)
* add ``--track-memory`` option: run a thread reading the memory usage
every millisecond and store the peak as ``mem_peak`` metadata
* ``compare_to``: add ``--group-by-speed`` (``-G``) and ``--min-speed`` options
* metadata: add ``runnable_threads``
* Fix issues on ppc64le Power8

Page 8 of 10

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.