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 2
如果只是简单的计数,我觉得这个实现问题不大,如果是为了做性能剖析采样的话。
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 之类的工具,然后再对应回你的源代码。
|