python 文字列に数値が含まているの判定処理で「anyとisdigit」と「正規表現」と「anyとmapとisdigit」のパフォーマンスを計測して比較する
pythonで、文字列に数値が含まているの判定処理を「anyとisdigit」と「正規表現」と「anyとmapとisdigit」のそれぞれで実行したパフォーマンスを計測して比較するコードと結果を記述してます。pythonのバージョンは3.10.0を使用してます。
環境
- OS windows11 home 64bit
- python 3.10.0
パフォーマンス計測
「time.perf_counter」を使用して、文字列に数値が含まているかの判定処理で「anyとisdigit」と「正規表現」と「anyとmapとisdigit」を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")
実行結果をみると「anyとmapとisdigit」の方がパフォーマンスは良さそうです。
【1回目】
any isdigit : 24079.2 ms
正規表現 : 48312.3 ms
anyとmapとisdigit : 11779.9 ms
【2回目】
any isdigit : 23959.1 ms
正規表現 : 47742.2 ms
any map isdigit : 11569.3 ms
【3回目】
any isdigit : 23881.5 ms
正規表現 : 48199.6 ms
any map isdigit : 11581.3 ms
-
前の記事
メモ帳 文字を拡大・縮小するショートカットキー 2022.12.28
-
次の記事
Vagrant boxを一覧で確認する 2022.12.28
コメントを書く