2016年1月5日 11:00
Pythonで学ぶ 基礎からのプログラミング入門 (32) マルチスレッド処理を理解しよう(前編)
次にprint文で合計値を出力するようにしてみます。これは「画面への出力処理」にかかる時間が追加されるということです。
import time
sum_value = 0
current_time = time.time()
for i in range(0, 10000):
sum_value += i
print(sum_value)
print(time.time() - current_time)
この実行速度は私の環境では0.027067899704となりました。オリジナルのループするだけのコードに比べると処理時間が約54倍となっています。足し算に比べて処理時間が一気に跳ね上がりましたね。
ここまでをまとめると、以下のようなことがわかります。
足し算は速度が早い
print文による画面出力は遅い
この処理速度の違いはなんだと思いますか? 答えは簡単で、足し算は「CPUとメモリ」の処理であり、print文は「画面出力というIO処理」というところです。Pythonで処理を書く場合、その実効速度は以下の図のような傾向があります。
Pythonで書いても直接Cで実行される場合とインタプリタで解釈されて実行される場合があります。