LoginSignup
2
1

More than 3 years have passed since last update.

Python 3.6〜3.9のベンチマーク

Last updated at Posted at 2018-07-02

Python 3.7がリリースされていたので、Benchmarkerのサンプルコードで簡単にベンチマークした結果です。

ベンチマーク結果

3.6

$ python3 example.py -o result3_6.json
## benchmarker:         release 4.0.1 (for python)
## python version:      3.6.5
## python compiler:     GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)
## python platform:     Darwin-16.7.0-x86_64-i386-64bit
## python executable:   /usr/local/opt/python/bin/python3.6
## cpu model:           Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
## parameters:          loop=1000000, cycle=1, extra=0

##                        real    (total    = user    + sys)
(Empty)                 0.0277    0.0300    0.0300    0.0000
join                    0.2340    0.2300    0.2300    0.0000
concat                  0.2714    0.2700    0.2700    0.0000
format                  0.3307    0.3200    0.3200    0.0000

## Ranking                real
join                    0.2340  (100.0) ********************
concat                  0.2714  ( 86.2) *****************
format                  0.3307  ( 70.8) **************

## Matrix                 real    [01]    [02]    [03]
[01] join               0.2340   100.0   116.0   141.3
[02] concat             0.2714    86.2   100.0   121.9
[03] format             0.3307    70.8    82.0   100.0

3.7

$ python3 example.py -o result3_7.json
## benchmarker:         release 4.0.1 (for python)
## python version:      3.7.0
## python compiler:     Clang 9.0.0 (clang-900.0.39.2)
## python platform:     Darwin-16.7.0-x86_64-i386-64bit
## python executable:   /usr/local/opt/python/bin/python3.7
## cpu model:           Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
## parameters:          loop=1000000, cycle=1, extra=0

##                        real    (total    = user    + sys)
(Empty)                 0.0258    0.0200    0.0200    0.0000
join                    0.2265    0.2400    0.2300    0.0100
concat                  0.3118    0.3200    0.3200    0.0000
format                  0.3388    0.3400    0.3400    0.0000

## Ranking                real
join                    0.2265  (100.0) ********************
concat                  0.3118  ( 72.7) ***************
format                  0.3388  ( 66.9) *************

## Matrix                 real    [01]    [02]    [03]
[01] join               0.2265   100.0   137.6   149.6
[02] concat             0.3118    72.7   100.0   108.7
[03] format             0.3388    66.9    92.0   100.0

所感

文字列結合がそこそこ遅くなっているのが目立つ。

3.8も出たので計測

計測マシンは変わってしまったので、参考値としてですが同様に計測しました。

$ python3.8 example.py -o result3_8.json
## benchmarker:         release 4.0.1 (for python)
## python version:      3.8.4
## python compiler:     Clang 11.0.3 (clang-1103.0.32.62)
## python platform:     macOS-10.15.5-x86_64-i386-64bit
## python executable:   /usr/local/opt/python@3.8/bin/python3.8
## cpu model:           Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz
## parameters:          loop=1000000, cycle=1, extra=0

##                        real    (total    = user    + sys)
(Empty)                 0.0250    0.0200    0.0200    0.0000
join                    0.2017    0.2100    0.2100    0.0000
concat                  0.2530    0.2600    0.2600    0.0000
format                  0.3028    0.3000    0.3000    0.0000

## Ranking                real
join                    0.2017  (100.0) ********************
concat                  0.2530  ( 79.7) ****************
format                  0.3028  ( 66.6) *************

## Matrix                 real    [01]    [02]    [03]
[01] join               0.2017   100.0   125.5   150.1
[02] concat             0.2530    79.7   100.0   119.7
[03] format             0.3028    66.6    83.6   100.0

3.9も出たので計測

3.8と同じマシンで計測しました。

$ python3.9 example.py -o result3_9.json
## benchmarker:         release 4.0.1 (for python)
## python version:      3.9.0
## python compiler:     Clang 11.0.3 (clang-1103.0.32.62)
## python platform:     macOS-10.15.7-x86_64-i386-64bit
## python executable:   /usr/local/opt/python@3.9/bin/python3.9
## cpu model:           Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz
## parameters:          loop=1000000, cycle=1, extra=0

##                        real    (total    = user    + sys)
(Empty)                 0.0243    0.0200    0.0200    0.0000
join                    0.2200    0.2300    0.2300    0.0000
concat                  0.2766    0.2700    0.2700    0.0000
format                  0.3161    0.3200    0.3200    0.0000

## Ranking                real
join                    0.2200  (100.0) ********************
concat                  0.2766  ( 79.5) ****************
format                  0.3161  ( 69.6) **************

## Matrix                 real    [01]    [02]    [03]
[01] join               0.2200   100.0   125.7   143.7
[02] concat             0.2766    79.5   100.0   114.3
[03] format             0.3161    69.6    87.5   100.0

3.8よりは遅くなっている感じ。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1