round の速度
Python で比較。10*1000*1000 回ループさせたらこのぐらい。
cast: 2.792 s floor: 2.524 s ceil: 2.539 s round: 10.761 s pass: 0.472 s
キャストや切り捨てに比べて round は 5 倍ぐらい時間がかかっている。
実行したコードは以下。
import datetime import math n = 10*1000*1000 dummy = 0 dt_1 = datetime.datetime.now() for i in range(n): dummy = int(math.pi) # int -> math.floor, math.ceil, round, pass dt_2 = datetime.datetime.now() dt_delta = dt_2 - dt_1 print 'cast: %2d.%03d s' % (dt_delta.seconds, (dt_delta.microseconds / 1000))