performance 0.5.5 and perf 1.3 released
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 theconfigure
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 thePoint
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 suitecall_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()
andget_inner_loops()
methods to Run and Benchmark classesDocumentation: 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 getboot_time
anduptime
metadata
- use
The Runner constructor now raises an exception if more than one instance is created.
Victor
participants (1)
-
Victor Stinner