做了一些谷歌(“球拍剖析”,“球拍测量性能”),但没有找到任何,没有在文档中的例子。甚至谷歌的“个人资料”搜索在htdp
上-没有运气。除了用于小片段之外,(profile (f ...))
输出没有那么明显。
理想情况下,我希望类似于python的python -m cProfile
使用示例。
发布于 2014-06-02 13:09:16
当我搜索"Python“时,DuckDuckGo和Google都给出了这样的结果:26.4.Python分析器。
(虽然我扫描得很快,但它似乎更像是一个参考,而不是一个“彻底的使用指南”的例子。所以,如果你有其他的想法,也许你可以链接到它?)
同等的球拍文档应该是:资料简介:统计资料。
一个用法示例:
#lang racket
(require profile)
(profile-thunk (thunk (function-to-profile arg0 arg1) ))
在这里,(thunk e)
只是(lambda () e)
的一个方便。
更大的例子:
#lang racket
(module mod racket
(provide f)
(define (f)
(for/list ([i 10000])
i)))
(require (prefix-in mod: 'mod))
(define (f)
(for ([i 10000])
(mod:f)))
(require profile)
(profile-thunk f)
对我来说,这一产出:
Profiling results
-----------------
Total cpu time observed: 5666ms (out of 5753ms)
Number of samples taken: 105 (once every 54ms)
========================================================
Caller
Idx Total Self Name+src Local%
ms(pct) ms(pct) Callee
========================================================
[1] 5666(100.0%) 0(0.0%) [running body] /tmp/profile.rkt:##f
profile-thunk14 [2]100.0%
--------------------------------------------------------
[running body] [1] 100.0%
[2] 5666(100.0%) 0(0.0%) profile-thunk14 ...e-pkgs/profile-lib/main.rkt:9:0
run [3] 100.0%
--------------------------------------------------------
profile-thunk14 [2]100.0%
[3] 5666(100.0%) 0(0.0%) run ...pkgs/profile-pkgs/profile-lib/main.rkt:31:2
for-loop [4] 100.0%
--------------------------------------------------------
run [3] 100.0%
[4] 5666(100.0%) 1630(28.8%) for-loop /tmp/profile.rkt:12:2
f [5] 71.2%
--------------------------------------------------------
for-loop [4] 100.0%
[5] 4036(71.2%) 1786(31.5%) f /tmp/profile.rkt:5:2
for-loop [6] 55.8%
--------------------------------------------------------
f [5] 100.0%
[6] 2250(39.7%) 2250(39.7%) for-loop /tmp/profile.rkt:6:4
--------------------------------------------------------
请注意,它确实显示了行号,因此即使有两个名为f
的函数,也可以看到哪个1实际上是每个1的哪个部分。
此外,我强烈建议使用优化教练包。虽然这将给您提供与传统分析器不同的洞察力,但它也给出了如何更改代码以可能更快的具体建议。作为一种副产品,它教会你如何在一开始就这样写它。
https://stackoverflow.com/questions/23988370
复制相似问题