1 fanhaipeng0403 2019-01-05 21:06:04 +08:00 卧槽 我刚写了个类似的文章~ |
![]() | 2 simoncos OP @fanhaipeng0403 哈哈,握手,发出来看看啊 |
3 fanhaipeng0403 2019-01-05 21:07:58 +08:00 |
4 fanhaipeng0403 2019-01-05 21:08:12 +08:00 @simoncos 可能没啥用 哈哈 |
![]() | 5 Allianzcortex 2019-01-05 21:16:00 +08:00 via iPhone 我能想到的基本也就这两种方法了... |
![]() | 6 Allianzcortex 2019-01-05 21:23:26 +08:00 via iPhone 搜 python measure time code block 发现一个好问题,https://stackoverflow.com/questions/15707056/get-time-of-execution-of-a-block-of-code-in-python-2-7,恰好对应了起来,作者用的第一种方法,第一个回答者用的第二种方法,第二个回答者用的第三种方法 |
![]() | 7 simoncos OP @Allianzcortex 哈哈哈哈有种被钦定的感觉 |
![]() | 8 Allianzcortex 2019-01-05 21:28:11 +08:00 via iPhone @simoncos 说明 best practice 是全球通用的 ! |
9 neoblackcap 2019-01-05 23:02:26 +08:00 ![]() 如果只是简单的计数,我觉得这个实现问题不大,如果是为了做性能剖析采样的话。 uber 的 pyflame,无入侵式,可以生成火焰图,看火焰图就差不多了。 如果想跟进一步做 timer 的话,可以使用 CPython 的 Profiling API,Pycharm 也是用对应的 API 实现 Debugger 的。精确到行级,性能更高。 |
![]() | 10 simoncos OP @neoblackcap pyflame 之前不了解,无侵入式倒是很意思,不知道是怎么做到的,谢谢推荐。profile 的话场景感觉有点不一样,目前我工程上主要是用计时器在生产时输出日志。 |
11 neoblackcap 2019-01-05 23:50:44 +08:00 @simoncos 非侵入式,当然是要考虑 dtrace, bpf, ptrace 之类的工具,然后再对应回你的源代码。 |