FanchenBao
1 min readJan 12, 2020

--

I am blown away by the amount of speed up provided by “use local variable” and “don’t access attribute”.

>>> import random>>> import timeit>>> def fun1():
... for _ in range(10000):
... random.random()
>>> def fun2():
... r = random.random
... for _ in range(10000):
... r()
>>> timeit.timeit('fun1()', setup='from __main__ import fun1', number=1000)
1.3499903420000123
>>> timeit.timeit('fun2()', setup='from __main__ import fun2', number=1000)
0.7535411869999962
>>> from random import random>>> def fun3():
... for _ in range(10000):
... random()
>>> timeit.timeit('fun3()', setup='from __main__ import fun3', number=1000)
0.8960432139999739

--

--

FanchenBao
FanchenBao

Written by FanchenBao

Hi, I am from the Earth. And you?

No responses yet