Create a gist now

Instantly share code, notes, and snippets.

Embed
What would you like to do?
# coding: utf-8
import math
def map_loop():
list(map(math.sin, range(20000000)))
def for_loop():
r = []
for i in range(20000000):
r.append(math.sin(i))
def local_var_for_loop():
r = []
local_append = r.append
local_sin = math.sin
for i in range(20000000):
local_append(local_sin(i))
def bigger_step_for_loop():
r = []
local_append = r.append
local_sin = math.sin
for i in range(0, 20000000, 4):
local_append(local_sin(i))
local_append(local_sin(i+1))
local_append(local_sin(i+2))
local_append(local_sin(i+3))
import time
class Timer:
def __init__(self):
self.reset()
def reset(self):
self.start = 0.0
self.end = 0.0
self.interval = 0.0
def set(self):
self.start = time.time()
def stop(self, num):
self.end = time.time()
self.interval = (self.end - self.start)/num
print('costs time %f s' % self.interval)
number_tasks = 20000000
timer = Timer()
print('I: using for loop')
timer.set()
for i in range(10):
for_loop()
timer.stop(10)
print('I: using map()')
timer.set()
for i in range(10):
map_loop()
timer.stop(10)
print('I: using local_var_for_loop')
timer.set()
for i in range(10):
local_var_for_loop()
timer.stop(10)
print('I: using map outside function')
timer.set()
for i in range(10):
result = list(map(math.sin, range(20000000)))
timer.stop(10)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment