Performance

Latest version: v0.8.0

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

Scan your dependencies

Page 3 of 4

0.3.1

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

* Add ``regex_dna`` benchmark
* The ``run`` command now fails with an error if no benchmark was run.
* genshi, logging, scimark, sympy and xml_etree scripts now run all
sub-benchmarks by default
* Rewrite pybench using perf: remove the old legacy code to calibrate and run
benchmarks, reuse perf.Runner API.
* Change heuristic to create the virtual environment, tried commands:

* ``python -m venv``
* ``python -m virtualenv``
* ``virtualenv -p python``

* The creation of the virtual environment now ensures that pip works
to detect "python3 -m venv" which doesn't install pip.
* Upgrade perf dependency from 0.7.12 to 0.8.2: update all benchmarks to
the new perf 0.8 API (which introduces incompatible changes)
* Update SQLAlchemy from 1.1.1 to 1.1.2

0.3.0

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

New benchmarks:

* Add ``crypto_pyaes``: Benchmark a pure-Python implementation of the AES
block-cipher in CTR mode using the pyaes module (version 1.6.0). Add
``pyaes`` dependency.
* Add ``sympy``: Benchmark on SymPy. Add ``scipy`` dependency.
* Add ``scimark`` benchmark
* Add ``deltablue``: DeltaBlue benchmark
* Add ``dulwich_log``: Iterate on commits of the asyncio Git repository using
the Dulwich module. Add ``dulwich`` (and ``mpmath``) dependencies.
* Add ``pyflate``: Pyflate benchmark, tar/bzip2 decompressor in pure
Python
* Add ``sqlite_synth`` benchmark: Benchmark Python aggregate for SQLite
* Add ``genshi`` benchmark: Render template to XML or plain text using the
Genshi module. Add ``Genshi`` dependency.
* Add ``sqlalchemy_declarative`` and ``sqlalchemy_imperative`` benchmarks:
SQLAlchemy Declarative and Imperative benchmarks using SQLite. Add
``SQLAlchemy`` dependency.

Enhancements:

* ``compare`` command now fails if the performance versions are different
* ``nbody``: add ``--reference`` and ``--iterations`` command line options.
* ``chaos``: add ``--width``, ``--height``, ``--thickness``, ``--filename``
and ``--rng-seed`` command line options
* ``django_template``: add ``--table-size`` command line option
* ``json_dumps``: add ``--cases`` command line option
* ``pidigits``: add ``--digits`` command line option
* ``raytrace``: add ``--width``, ``--height`` and ``--filename`` command line
options
* Port ``html5lib`` benchmark to Python 3
* Enable ``pickle_pure_python`` and ``unpickle_pure_python`` on Python 3
(code was already compatible with Python 3)
* Creating the virtual environment doesn't inherit environment variables
(especially ``PYTHONPATH``) by default anymore: ``--inherit-environ``
command line option must now be used explicitly.

Bugfixes:

* ``chaos`` benchmark now also reset the ``random`` module at each sample
to get more reproductible benchmark results
* Logging benchmarks now truncate the in-memory stream before each benchmark
run

Rename benchmarks:

* Rename benchmarks to get a consistent name between the command line and
benchmark name in the JSON file.
* Rename pickle benchmarks:

- ``slowpickle`` becomes ``pickle_pure_python``
- ``slowunpickle`` becomes ``unpickle_pure_python``
- ``fastpickle`` becomes ``pickle``
- ``fastunpickle`` becomes ``unpickle``

* Rename ElementTree benchmarks: replace ``etree_`` prefix with
``xml_etree_``.
* Rename ``hexiom2`` to ``hexiom_level25`` and explicitly pass ``--level=25``
parameter
* Rename ``json_load`` to ``json_loads``
* Rename ``json_dump_v2`` to ``json_dumps`` (and remove the deprecated
``json_dump`` benchmark)
* Rename ``normal_startup`` to ``python_startup``, and ``startup_nosite``
to ``python_startup_no_site``
* Rename ``threaded_count`` to ``threading_threaded_count``,
rename ``iterative_count`` to ``threading_iterative_count``
* Rename logging benchmarks:

- ``silent_logging`` to ``logging_silent``
- ``simple_logging`` to ``logging_simple``
- ``formatted_logging`` to ``logging_format``

Minor changes:

* Update dependencies
* Remove broken ``--args`` command line option.

0.2.2

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

* Add a new ``show`` command to display a benchmark file
* Issue 11: Display Python version in compare. Display also the performance
version.
* CPython issue 26383; csv output: don't truncate digits for timings shorter
than 1 us
* compare: Use sample unit of benchmarks, format values in the table
output using the unit
* compare: Fix the table output if benchmarks only contain a single sample
* Remove unused -C/--control_label and -E/--experiment_label options
* Update perf dependency to 0.7.11 to get Benchmark.get_unit() and
BenchmarkSuite.get_metadata()

0.2.1

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

* Add ``--csv`` option to the ``compare`` command
* Fix ``compare -O table`` output format
* Freeze indirect dependencies in requirements.txt
* ``run``: add ``--track-memory`` option to track the memory peak usage
* Update perf dependency to 0.7.8 to support memory tracking and the new
``--inherit-environ`` command line option
* If ``virtualenv`` command fail, try another command to create the virtual
environment: catch ``virtualenv`` error
* The first command to upgrade pip to version ``>= 6.0`` now uses the ``pip``
binary rather than ``python -m pip`` to support pip 1.0 which doesn't support
``python -m pip`` CLI.
* Update Django (1.10.1), Mercurial (3.9.1) and psutil (4.3.1)
* Rename ``--inherit_env`` command line option to ``--inherit-environ`` and fix
it

0.2

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

* Update Django dependency to 1.10
* Update Chameleon dependency to 2.24
* Add the ``--venv`` command line option
* Convert Python startup, Mercurial startup and 2to3 benchmarks to perf scripts
(bm_startup.py, bm_hg_startup.py and bm_2to3.py)
* Pass the ``--affinity`` option to perf scripts rather than using the
``taskset`` command
* Put more installer and optional requirements into
``performance/requirements.txt``
* Cached ``.pyc`` files are no more removed before running a benchmark.
Use ``venv recreate`` command to update a virtual environment if required.
* The broken ``--track_memory`` option has been removed. It will be added back
when it will be fixed.
* Add performance version to metadata
* Upgrade perf dependency to 0.7.5 to get ``Benchmark.update_metadata()``

0.1.2

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

* Windows is now supported
* Add a new ``venv`` command to show, create, recrete or remove the virtual
environment.
* Fix pybench benchmark (update to perf 0.7.4 API)
* performance now tries to install the ``psutil`` module on CPython for better
system metrics in metadata and CPU pinning on Python 2.
* The creation of the virtual environment now also tries ``virtualenv`` and
``venv`` Python modules, not only the virtualenv command.
* The development version of performance now installs performance
with "pip install -e <path_to_performance>"
* The GitHub project was renamed from ``python/benchmarks``
to ``python/performance``.

Page 3 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.