.. _python-perf:
++++++++++++++++++
Python performance
++++++++++++++++++
Codespeed websites
==================
* `speed.python.org `_: CPython benchmarks,
run `performance `_
and `(tobami's) codespeed `_
* `speed.pypy.org `_: PyPy benchmarks, run
`PyPy benchmarks `_
* `speed.pyston.org `_: Pyston benchmarks,
run `pyston-perf `_
Projects
========
Python benchmarks:
* `performance `_
(`GitHub project `__):
Python benchmark suite
* `perf `_
(`GitHub project `__):
Python module to run, analyze and compare benchmarks
* `performance_results `_:
Results of the of performance benchmark suite
* `pymicrobench `_: Collection
of Python microbenchmarks written for CPython.
* `PyPy benchmarks `_: PyPy benchmark
suite
* `Codespeed (tobami's flavor) `_:
Django application to explose benchmark results. Pages: Homepage, Changes,
Timeline, Compare.
* `pyston-perf `_: Pyston benchmark
suite
Other Python Benchmarks:
* `Numba benchmarks `_
* `Cython Demos/benchmarks
`_
* `pythran numpy-benchmarks
`_
Old deprecated projects:
* `benchmarks `_:
the old and deprecated Python benchmark suite
Mailing list
============
* `Python speed mailing list
`_
Old Python benchmarks
=====================
The following benchmarks were removed from pyperformance:
* `bm_rietveld.py
`_:
use Google AppEngine and Rietveld application which are not available on PyPI
* `bm_spitfire.py
`_:
Spitfire project is not available on PyPI
* `bm_threading.py
`_
(``threading_iterative_count``, ``threading_threaded_count``)
* `gcbench.py
`_
* `pystone.py
`_
* `tuple_gc_hell.py
`_
Zero copy
=========
Python3::
offset = 0
view = memoryview(large_data)
while True:
chunk = view[offset:offset + 4096]
offset += file.write(chunk)
This copy creates views on ``large_data`` without copying bytes, no bytes is
copied in memory.