[Python-Dev] Possible performance regression
Raymond Hettinger
raymond.hettinger at gmail.com
Sun Feb 24 23:54:02 EST 2019
I'll been running benchmarks that have been stable for a while. But between today and yesterday, there has been an almost across the board performance regression.
It's possible that this is a measurement error or something unique to my system (my Mac installed the 10.14.3 release today), so I'm hoping other folks can run checks as well.
Raymond
-- Yesterday ------------------------------------------------------------------------
$ ./python.exe Tools/scripts/var_access_benchmark.py
Variable and attribute read access:
4.0 ns read_local
4.5 ns read_nonlocal
13.1 ns read_global
17.4 ns read_builtin
17.4 ns read_classvar_from_class
15.8 ns read_classvar_from_instance
24.6 ns read_instancevar
19.7 ns read_instancevar_slots
18.5 ns read_namedtuple
26.3 ns read_boundmethod
Variable and attribute write access:
4.6 ns write_local
4.8 ns write_nonlocal
17.5 ns write_global
39.1 ns write_classvar
34.4 ns write_instancevar
25.3 ns write_instancevar_slots
Data structure read access:
17.5 ns read_list
18.4 ns read_deque
19.2 ns read_dict
Data structure write access:
19.0 ns write_list
22.0 ns write_deque
24.4 ns write_dict
Stack (or queue) operations:
55.5 ns list_append_pop
46.3 ns deque_append_pop
46.7 ns deque_append_popleft
Timing loop overhead:
0.3 ns loop_overhead
-- Today ---------------------------------------------------------------------------
$ ./python.exe py Tools/scripts/var_access_benchmark.py
Variable and attribute read access:
5.0 ns read_local
5.3 ns read_nonlocal
14.7 ns read_global
18.6 ns read_builtin
19.9 ns read_classvar_from_class
17.7 ns read_classvar_from_instance
26.1 ns read_instancevar
21.0 ns read_instancevar_slots
21.7 ns read_namedtuple
27.8 ns read_boundmethod
Variable and attribute write access:
6.1 ns write_local
7.3 ns write_nonlocal
18.9 ns write_global
40.7 ns write_classvar
36.2 ns write_instancevar
26.1 ns write_instancevar_slots
Data structure read access:
19.1 ns read_list
19.6 ns read_deque
20.6 ns read_dict
Data structure write access:
22.8 ns write_list
23.5 ns write_deque
27.8 ns write_dict
Stack (or queue) operations:
54.8 ns list_append_pop
49.5 ns deque_append_pop
49.4 ns deque_append_popleft
Timing loop overhead:
0.3 ns loop_overhead
More information about the Python-Dev
mailing list