大規模なプログラムを組めば、一つ一つの計算速度の積み重ねが響いてきます。
甘くみてはいけない、計算速度の短縮。2時間かかるプログラムが30分で終わる可能性だってあります。
というわけで、本日は簡単なプログラムを書いてそれぞれの速度を調べようと思います。
import math
import numpy as np
import time
start = time.time()
a =1/(2 * math.pi * math.sqrt(2) * math.sqrt(2) * math.sqrt*1
print("numpy_time:{0}".format(numpy_time))
print("standard_time:{0}".format(standard_time))
print("dtime:{0}".format(dtime))
今回は、
- 赤;mathの冪乗と簡単な計算
- 紫;numpyの冪乗と簡単な計算
- 緑:標準装備の**とnumpyによる簡単な計算
- 青;標準装備の**とmathによる簡単な計算
で速度の違いを調べてみました。
結果は...
4の「標準装備の**とmathによる簡単な計算」の勝利です。
次点は3ですが、3の方式で計算している間に4は3回計算ができることになりますね。
つまり、これが数百万回、数千万回繰り返す計算になると、分単位で差が出てきます。
重要ですね。計算。
甘く見ることなかれ。
今回numpyを使用して「遅いじゃないか」と思ったのですが、
numpyは他のところで便利に作用するらしいです。
それはまた今度...
*1:6 - math.pow(2,2))))
math_time = time.time() - start
starNm = time.time()
b = 1/(2 * np.pi * np.sqrt(2) * np.sqrt(2) * np.sqrt((6 - np.power(2,2))))
numpy_time = time.time() -starNm
startSt = time.time()
c = 1/(2 * np.pi * np.sqrt(2) * np.sqrt(2) * np.sqrt((6 - 2**2)))
standard_time = time.time() - startSt
startMt = time.time()
d = 1/(2 * math.pi * math.sqrt(2) * math.sqrt(2) * math.sqrt((6 - 2**2)))
dtime = time.time() - startMt
print("math_time:{0}".format(math_time