@@ -628,48 +628,48 @@ Here's a summary of performance improvements from Python 3.4 through Python 3.9:
628
628
629
629
.. code-block :: none
630
630
631
- Python version 3.4 3.5 3.6 3.7 3.8 3.9
632
- -------------- --- --- --- --- --- ---
631
+ Python version 3.4 3.5 3.6 3.7 3.8 3.9
632
+ -------------- --- --- --- --- --- ---
633
633
634
634
Variable and attribute read access:
635
- read_local 7.1 7.1 5.4 5.1 3.9 4.0
636
- read_nonlocal 7.1 8.1 5.8 5.4 4.4 4.8
637
- read_global 5 .5 19.0 14.3 13.6 7.6 7.7
638
- read_builtin 1 .1 21.6 18.5 19.0 7.5 7.7
639
- read_classvar_from_class 5 .6 26.5 20.7 19.5 18.4 18.6
640
- read_classvar_from_instance 2 .8 23.5 18.8 17.1 16.4 20.1
641
- read_instancevar 2 .4 33.1 28.0 26.3 25.4 27.7
642
- read_instancevar_slots 7 .8 31.3 20.8 20.8 20.2 24.5
643
- read_namedtuple 3 .8 57.5 45.0 46.8 18.4 23.2
644
- read_boundmethod 7 .6 37.9 29.6 26.9 27.7 45.9
635
+ read_local 7.1 7.1 5.4 5.1 3.9 4.0
636
+ read_nonlocal 7.1 8.1 5.8 5.4 4.4 4.8
637
+ read_global 15 .5 19.0 14.3 13.6 7.6 7.7
638
+ read_builtin 21 .1 21.6 18.5 19.0 7.5 7.7
639
+ read_classvar_from_class 25 .6 26.5 20.7 19.5 18.4 18.6
640
+ read_classvar_from_instance 22 .8 23.5 18.8 17.1 16.4 20.1
641
+ read_instancevar 32 .4 33.1 28.0 26.3 25.4 27.7
642
+ read_instancevar_slots 27 .8 31.3 20.8 20.8 20.2 24.5
643
+ read_namedtuple 73 .8 57.5 45.0 46.8 18.4 23.2
644
+ read_boundmethod 37 .6 37.9 29.6 26.9 27.7 45.9
645
645
646
646
Variable and attribute write access:
647
- write_local 8.7 9.3 5.5 5.3 4.3 4.2
648
- write_nonlocal 0 .5 11.1 5.6 5.5 4.7 4.9
649
- write_global 9 .7 21.2 18.0 18.0 15.8 17.2
650
- write_classvar 2 .9 96.0 104.6 102.1 39.2 43.2
651
- write_instancevar 4 .6 45.8 40.0 38.9 35.5 40.7
652
- write_instancevar_slots 5 .6 36.1 27.3 26.6 25.7 27.7
647
+ write_local 8.7 9.3 5.5 5.3 4.3 4.2
648
+ write_nonlocal 10 .5 11.1 5.6 5.5 4.7 4.9
649
+ write_global 19 .7 21.2 18.0 18.0 15.8 17.2
650
+ write_classvar 92 .9 96.0 104.6 102.1 39.2 43.2
651
+ write_instancevar 44 .6 45.8 40.0 38.9 35.5 40.7
652
+ write_instancevar_slots 35 .6 36.1 27.3 26.6 25.7 27.7
653
653
654
654
Data structure read access:
655
- read_list 4 .2 24.5 20.8 20.8 19.0 21.1
656
- read_deque 4 .7 25.5 20.2 20.6 19.8 21.6
657
- read_dict 4 .3 25.7 22.3 23.0 21.0 22.5
658
- read_strdict 2 .6 24.3 19.5 21.2 18.9 21.6
655
+ read_list 24 .2 24.5 20.8 20.8 19.0 21.1
656
+ read_deque 24 .7 25.5 20.2 20.6 19.8 21.6
657
+ read_dict 24 .3 25.7 22.3 23.0 21.0 22.5
658
+ read_strdict 22 .6 24.3 19.5 21.2 18.9 21.6
659
659
660
660
Data structure write access:
661
- write_list 7 .1 28.5 22.5 21.6 20.0 21.6
662
- write_deque 8 .7 30.1 22.7 21.8 23.5 23.2
663
- write_dict 1 .4 33.3 29.3 29.2 24.7 27.8
664
- write_strdict 8 .4 29.9 27.5 25.2 23.1 29.8
661
+ write_list 27 .1 28.5 22.5 21.6 20.0 21.6
662
+ write_deque 28 .7 30.1 22.7 21.8 23.5 23.2
663
+ write_dict 31 .4 33.3 29.3 29.2 24.7 27.8
664
+ write_strdict 28 .4 29.9 27.5 25.2 23.1 29.8
665
665
666
666
Stack (or queue) operations:
667
- list_append_pop 13 .4 112.7 75.4 74.2 50.8 53.9
668
- deque_append_pop 3 .5 57.0 49.4 49.2 42.5 45.5
669
- deque_append_popleft 3 .7 57.3 49.7 49.7 42.8 45.5
667
+ list_append_pop 93 .4 112.7 75.4 74.2 50.8 53.9
668
+ deque_append_pop 43 .5 57.0 49.4 49.2 42.5 45.5
669
+ deque_append_popleft 43 .7 57.3 49.7 49.7 42.8 45.5
670
670
671
671
Timing loop:
672
- loop_overhead 0.5 0.6 0.4 0.3 0.3 0.3
672
+ loop_overhead 0.5 0.6 0.4 0.3 0.3 0.3
673
673
674
674
These results were generated from the variable access benchmark script at:
675
675
``Tools/scripts/var_access_benchmark.py ``. The benchmark script displays timings
0 commit comments