4 ms·
This discussion inspired me to refine Scalene's output further. Scalene now separates out CPU time spent in Python from time spent in C (that is, not executing
by emeryberger 7y ago
This discussion inspired me to refine Scalene's output further. Scalene now separates out CPU time spent in Python from time spent in C (that is, not executing in the interpreter). I think this is the best of both worlds: all CPU time is accounted for, and it's easy for users to see what code is running where. Thanks!
sample-sample.py: % of CPU time = 99.58% out of 3.34s.
| CPU % | CPU % |
Line | (Python) | (C) | [sample-sample.py]
--------------------------------------------------------------------------------
1 | | | #!/usr/bin/env python
2 | | |
3 | | | import time
4 | | |
5 | | | def timed(f):
6 | | | def f_timed(*args, **kwargs):
7 | | | t = time.time()
8 | | | r = f(*args, **kwargs)
9 | | | t = time.time() - t
10 | | | print('%s %.4f %s' % (f.__name__, t, r))
11 | | | return f_timed
12 | | |
13 | | | @timed
14 | | | def f1(n):
15 | | | s = 0
16 | 6.61% | 0.41% | for i in range(n):
17 | 35.17% | 3.97% | s += i
18 | | | return s
19 | | |
20 | | | @timed
21 | | | def f2(n):
22 | 0.30% | 53.53% | return sum(range(n))
23 | | |
24 | | | @timed
25 | | | def f3(t):
26 | | | time.sleep(t)
27 | | | return t
28 | | |
29 | | | if __name__ == '__main__':
30 | | | f1(25000000)
31 | | | f2(75000000)
32 | | | f3(1.5)
- gshulegaard 7y agoJust wanted to take a moment to appreciate the awesome response to feedback and new added feature.
- bawr_hszm 7y agoI like it, and I appreciate that you changed your mind - I'm still staunchly in the flamgraph camp of capturing and displaying whole stacks, but now I could see using this for small code samples, especially with the memory usage information added on top. Thanks for being good with my grumpy feedback!