forked from CompBioClasses/Python_tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
/
slow_prog.py
40 lines (32 loc) · 829 Bytes
/
slow_prog.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
'''
Something with a lot of functions that take some time (for profiling)
'''
# to create a code profile
# python -m cProfile -o sl.prof slow_prog.py
# to run snakevis to visually explore this profile
# snakevis: https://jiffyclub.github.io/snakeviz/
# snakeviz sl.prof
import time
def main():
N = 5000
M = 1000
answer = do_it_several_times(N,M)
print(answer)
def slow_cumsum(N):
ans = 0
for n in range(N):
ans += n
return ans
def do_it_several_times(N,M):
ans = 0
for n in range(N):
print(f'Iternation number {n}')
cum_sum = slow_cumsum(M+n)
# do some other computations
ans += cum_sum - n
return ans
if __name__ == "__main__":
tic = time.time()
main()
timediff = time.time() - tic
print('Elapsed time: {}'.format(timediff))