python 空文字判定処理で「==」と「not」と「is」のパフォーマンスを計測して比較する

python 空文字判定処理で「==」と「not」と「is」のパフォーマンスを計測して比較する

pythonで、空文字判定処理を「==」と「not」と「is」のそれぞれで実行したパフォーマンスを計測して比較するコードと結果を記述してます。pythonのバージョンは3.10.0を使用してます。

環境

  • OS windows11 home 64bit
  • python 3.10.0

パフォーマンス計測

「time.perf_counter」を使用して、同じ空文字判定処理で「==」と「not」と「is」を1000万回実行して、計測した結果を比較してみます。

import time
import re

txt = ""
n =  10_000_000

# 計測開始
time_sta = time.perf_counter()

# 処理
for i in range(n):
    str == ""
    
# 計測終了
time_end = time.perf_counter()

# 結果表示
result = time_end- time_sta
print(f"== : {result * 1000:.1f} ms") 

# 計測開始
time_sta = time.perf_counter()

# 処理
for i in range(n):
    not str
    
# 計測終了
time_end = time.perf_counter()

# 結果表示
result = time_end- time_sta
print(f"not : {result * 1000:.1f} ms")

# 計測開始
time_sta = time.perf_counter()

# 処理
for i in range(n):
    str is ""
    
# 計測終了
time_end = time.perf_counter()

# 結果表示
result = time_end- time_sta
print(f"is : {result * 1000:.1f} ms") 

実行結果をみると「not」がパフォーマンスは良さそうです。

【1回目】
== : 3111.7 ms
not : 2574.2 ms
is : 2525.2 ms

【2回目】
== : 2915.6 ms
not : 2431.7 ms
is : 2466.6 ms

【3回目】
== : 2922.6 ms
not : 2712.3 ms
is : 3057.4 ms