[Speed] performance 0.5.5 and perf 1.3 released
Victor Stinner
victor.stinner at gmail.com
Mon May 29 12:49:37 EDT 2017
Hi,
I just released performance 0.5.5 and perf 1.3. The main change is the
removal of microbenchmarks from performance, you can now find them in
a different project:
https://github.com/haypo/pymicrobench
The perf warmup calibration is still highly unstable, and so PyPy
still don't use performance yet. I began to analyze warmups manually
but I was too lazy to finish the work:
http://haypo-notes.readthedocs.io/pypy_warmups.html
=== performance 0.5.5 ===
* On the 2.x branch on CPython, ``compile`` now pass ``--enable-unicode=ucs4``
to the ``configure`` script on all platforms, except on Windows which uses
UTF-16 because of its 16-bit wchar_t.
* The ``float`` benchmark now uses ``__slots__`` on the ``Point`` class.
* Remove the following microbenchmarks. They have been moved to the
`pymicrobench <https://github.com/haypo/pymicrobench>`_ project because
they are too short, not representative of real applications and are too
unstable.
- ``pybench`` microbenchmark suite
- ``call_simple``
- ``call_method``
- ``call_method_unknown``
- ``call_method_slots``
- ``logging_silent``: values are faster than 1 ns on PyPy with 2^27 loops!
(and around 0.7 us on CPython)
* Update requirements
- Django: 1.11 => 1.11.1
- SQLAlchemy: 1.1.9 => 1.1.10
- certifi: 2017.1.23 => 2017.4.17
- perf: 1.2 => 1.3
- mercurial: 4.1.2 => 4.2
- tornado: 4.4.3 => 4.5.1
=== perf 1.3 ===
* Add ``get_loops()`` and ``get_inner_loops()`` methods to Run and Benchmark
classes
* Documentation: add export_csv.py and plot.py examples
* Rewrite warmup calibration for PyPy:
- Use Q1, Q3 and stdev, rather than mean and checking if the first value
is an outlier
- Always use a sample of 10 values, rather than using a sample of a variable
size starting with 3 values
* Use lazy import for most imports of the largest modules to reduce the
number of imported module on 'import perf'.
* Fix handling of broken pipe error to prevent logging the error:
"Exception ignored in: ... BrokenPipeError: ..."
* ``collect_metadata`` gets more metadata on FreeBSD:
- use ``os.getloadavg()`` if ``/proc/loadavg`` is not available (ex: FreeBSD)
- use ``psutil.boot_time()`` if ``/proc/stat`` is not available (ex: FreeBSD)
to get ``boot_time`` and ``uptime`` metadata
* The Runner constructor now raises an exception if more than one instance is
created.
Victor
More information about the Speed
mailing list