Python入門トップページ


目次

  1. 平方根のリストを作成するプログラムを作成しよう
  2. 平方根のリスト作成プログラムをモジュール化しよう
  3. Cython で平方根リスト作成プログラムを高速化しよう

Cython を使って Python プログラムを高速化しよう

平方根のリスト作成プログラムをモジュール化しよう

ここでは,Cythonを利用する一歩手前の処理として,前のページで作成した平方根リストの作成処理をモジュール化します.この上で,メインの Python プログラムから呼び出すことにします.

任意の名前でフォルダを作成し,そのフォルダの中に sqrtlist.py というファイルを作成します.

sqrtlist.py
import math

def sqrtlist(n):
    y = [0] * (n+1)
    for i in range(0, n+1):
        y[i] = math.sqrt(i)
    return y[4_084_441]

上で作成した sqrtlist モジュールを呼び出すメインのプログラムを作成します.なお,1, 5, 6, 7 行目の4行だけで前のページと同じ動作をしますが,処理時間を求める処理を追加しています.

main.py
from sqrtlist import sqrtlist
import time

time_start = time.time()
n = 100_000_000
s = sqrtlist(n)
print(s)
time_end = time.time()
time_gap = time_end - time_start
print(f"処理時間は {time_gap:.2f} 秒でした")

macOS のターミナルで main.py を何度か実行すると,平均処理時間は 14.57 秒でした.

% ls ⏎
main.py    sqrtlist.py
% python main.py ⏎
2021.0
処理時間は 14.65 秒でした
% python main.py ⏎
2021.0
処理時間は 14.64 秒でした
% python main.py ⏎
2021.0
処理時間は 14.42 秒でした
%

次のページでは今作成した sqrtlist.py モジュールを Cython で高速化することを考えます.

目次に戻る