{ "info": { "author": "Victor Stinner", "author_email": "victor.stinner@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "******\npyperf\n******\n\n.. image:: https://img.shields.io/pypi/v/pyperf.svg\n :alt: Latest release on the Python Cheeseshop (PyPI)\n :target: https://pypi.python.org/pypi/pyperf\n\n.. image:: https://travis-ci.org/vstinner/pyperf.svg?branch=master\n :alt: Build status of pyperf on Travis CI\n :target: https://travis-ci.org/vstinner/pyperf\n\nThe Python ``pyperf`` module is a toolkit to write, run and analyze benchmarks.\n\nFeatures\n========\n\n* Simple API to run reliable benchmarks\n* Automatically calibrate a benchmark for a time budget.\n* Spawn multiple worker processes.\n* Compute the mean and standard deviation.\n* Detect if a benchmark result seems unstable.\n* JSON format to store benchmark results.\n* Support multiple units: seconds, bytes and integer.\n\n\nUsage\n=====\n\nTo `run a benchmark`_ use the ``pyperf timeit`` command (result written into\n``bench.json``)::\n\n $ python3 -m pyperf timeit '[1,2]*1000' -o bench.json\n .....................\n Mean +- std dev: 4.22 us +- 0.08 us\n\nOr write a benchmark script ``bench.py``:\n\n.. code:: python\n\n #!/usr/bin/env python3\n import pyperf\n\n runner = pyperf.Runner()\n runner.timeit(name=\"sort a sorted list\",\n stmt=\"sorted(s, key=f)\",\n setup=\"f = lambda x: x; s = list(range(1000))\")\n\nSee `the API docs`_ for full details on the ``timeit`` function and the\n``Runner`` class. To run the script and dump the results into a file named\n``bench.json``::\n\n $ python3 bench.py -o bench.json\n\nTo `analyze benchmark results`_ use the ``pyperf stats`` command::\n\n $ python3 -m pyperf stats bench.json\n Total duration: 29.2 sec\n Start date: 2016-10-21 03:14:19\n End date: 2016-10-21 03:14:53\n Raw value minimum: 177 ms\n Raw value maximum: 183 ms\n\n Number of calibration run: 1\n Number of run with values: 40\n Total number of run: 41\n\n Number of warmup per run: 1\n Number of value per run: 3\n Loop iterations per value: 8\n Total number of values: 120\n\n Minimum: 22.1 ms\n Median +- MAD: 22.5 ms +- 0.1 ms\n Mean +- std dev: 22.5 ms +- 0.2 ms\n Maximum: 22.9 ms\n\n 0th percentile: 22.1 ms (-2% of the mean) -- minimum\n 5th percentile: 22.3 ms (-1% of the mean)\n 25th percentile: 22.4 ms (-1% of the mean) -- Q1\n 50th percentile: 22.5 ms (-0% of the mean) -- median\n 75th percentile: 22.7 ms (+1% of the mean) -- Q3\n 95th percentile: 22.9 ms (+2% of the mean)\n 100th percentile: 22.9 ms (+2% of the mean) -- maximum\n\n Number of outlier (out of 22.0 ms..23.0 ms): 0\n\nThere's also:\n\n* ``pyperf compare_to`` command tests if a difference is\n significant. It supports comparison between multiple benchmark suites (made\n of multiple benchmarks)\n ::\n\n $ python3 -m pyperf compare_to py2.json py3.json --table\n +-----------+---------+------------------------------+\n | Benchmark | py2 | py3 |\n +===========+=========+==============================+\n | timeit | 4.70 us | 4.22 us: 1.11x faster (-10%) |\n +-----------+---------+------------------------------+\n\n* ``pyperf system tune`` command to tune your system to run stable benchmarks.\n* Automatically collect metadata on the computer and the benchmark:\n use the ``pyperf metadata`` command to display them, or the\n ``pyperf collect_metadata`` command to manually collect them.\n* ``--track-memory`` and ``--tracemalloc`` options to track\n the memory usage of a benchmark.\n\n\nQuick Links\n===========\n\n* `pyperf documentation\n `_\n* `pyperf project homepage at GitHub\n `_ (code, bugs)\n* `Download latest pyperf release at the Python Cheeseshop (PyPI)\n `_\n\nCommand to install pyperf on Python 3::\n\n python3 -m pip install pyperf\n\npyperf supports Python 2.7 and Python 3. It is distributed under the MIT license.\n\n.. _run a benchmark: https://pyperf.readthedocs.io/en/latest/run_benchmark.html\n.. _the API docs: http://pyperf.readthedocs.io/en/latest/api.html#Runner.timeit\n.. _analyze benchmark results: https://pyperf.readthedocs.io/en/latest/analyze.html\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vstinner/pyperf", "keywords": "", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "pyperf", "package_url": "https://pypi.org/project/pyperf/", "platform": "", "project_url": "https://pypi.org/project/pyperf/", "project_urls": { "Homepage": "https://github.com/vstinner/pyperf" }, "release_url": "https://pypi.org/project/pyperf/1.6.1/", "requires_dist": [ "six", "statistics ; python_version < '3.4'" ], "requires_python": "", "summary": "Python module to run and analyze benchmarks", "version": "1.6.1" }, "last_serial": 5300213, "releases": { "1.6.1": [ { "comment_text": "", "digests": { "md5": "8ee00140e5a268b63eb7ddd0ef1973be", "sha256": "b9074a5e16e526ebe260922005ee96b67621ce804efd3e8dd49de49b513397a8" }, "downloads": -1, "filename": "pyperf-1.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8ee00140e5a268b63eb7ddd0ef1973be", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 87633, "upload_time": "2019-05-21T23:23:06", "url": "https://files.pythonhosted.org/packages/7f/34/12f4f27e43ed9d2269162fbb07005a08b45b6ed275a0e50cc3afda84af76/pyperf-1.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d67fe5f447963da8873f3e9923f76de1", "sha256": "8d0143a22a13ee10c997a648f30b82cdc40175d5a20b11055ae058a82e45d371" }, "downloads": -1, "filename": "pyperf-1.6.1.tar.gz", "has_sig": false, "md5_digest": "d67fe5f447963da8873f3e9923f76de1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 174419, "upload_time": "2019-05-21T23:23:09", "url": "https://files.pythonhosted.org/packages/ca/f8/885eb690f4098cd1c9b473f4b877b4aa8e0551b57a963ac36621737f3c65/pyperf-1.6.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8ee00140e5a268b63eb7ddd0ef1973be", "sha256": "b9074a5e16e526ebe260922005ee96b67621ce804efd3e8dd49de49b513397a8" }, "downloads": -1, "filename": "pyperf-1.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8ee00140e5a268b63eb7ddd0ef1973be", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 87633, "upload_time": "2019-05-21T23:23:06", "url": "https://files.pythonhosted.org/packages/7f/34/12f4f27e43ed9d2269162fbb07005a08b45b6ed275a0e50cc3afda84af76/pyperf-1.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d67fe5f447963da8873f3e9923f76de1", "sha256": "8d0143a22a13ee10c997a648f30b82cdc40175d5a20b11055ae058a82e45d371" }, "downloads": -1, "filename": "pyperf-1.6.1.tar.gz", "has_sig": false, "md5_digest": "d67fe5f447963da8873f3e9923f76de1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 174419, "upload_time": "2019-05-21T23:23:09", "url": "https://files.pythonhosted.org/packages/ca/f8/885eb690f4098cd1c9b473f4b877b4aa8e0551b57a963ac36621737f3c65/pyperf-1.6.1.tar.gz" } ] }