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 _______________________________________________ Speed mailing list Speed@python.org https://mail.python.org/mailman/listinfo/speed