Raymond Hettinger <[email protected]> added the comment:
Here are two timings for math.dist(). They were run with the production macOS
builds from python.org:
$ python3.8 -m timeit -r 11 -s 'from math import dist' -s 'p=(1.1, 2.2);
q=(1.7, 2.3)' 'dist(p, q)'
5000000 loops, best of 11: 58.4 nsec per loop
$ python3.9 -m timeit -r 11 -s 'from math import dist' -s 'p=(1.1, 2.2);
q=(1.7, 2.3)' 'dist(p, q)'
5000000 loops, best of 11: 66.9 nsec per loop
The attached screen shot shows that the only change between the two versions is
that the subclass check is inlined and fast in 3.8, but is an external function
call in 3.9.
---- 3.8 subclass check -----------
movq 8(%r12), %rax
movl $0, 32(%rsp)
testb $4, 171(%rax)
je L779
---- 3.9 subclass check -----------
movq 8(%r12), %rdi
call _PyType_GetFlags
movl $0, 32(%rsp)
testl $67108864, %eax
je L856
The C code for math.dist() is unchanged between 3.8 and 3.9. Both use
PyTuple_Check().
This isn't unique. Every single PyTuple_Check() is the similarly affected
(approx. 225 occurrences). Presumably, this affects other type checks as well.
----------
Added file: https://bugs.python.org/file49303/Screen Shot 2020-07-07 at
10.40.52 AM.png
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue39542>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com