首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows上进行性能分析

问在Windows上进行性能分析
EN

Stack Overflow用户
提问于 2018-10-29 04:19:09
回答 1查看 108关注 0票数 1

几天前我开始尝试使用stuck,现在我被profiler卡住了。

我要分析的函数名为my-fn。

我尝试的第一件事是包含(require profile),然后调用(profile-thunk (thunk (my-fn arg1)))。

当我在DrRacket中点击run按钮时,它显示

代码语言:javascript
复制
Profiling results
-----------------
  Total cpu time observed: 0ms (out of 2ms)
  Number of samples taken: 0 (once every 0ms)

====================================
                        Caller
Idx  Total    Self    Name+srcLocal%
     ms(pct)  ms(pct)   Callee
====================================

然后打印my-fn的返回值。

然后,我尝试通过在参数中为函数提供更多项来使函数变慢,并将#:repeat选项添加到分析器中。

(profile-thunk (thunk (my-fn arg1)) #:repeat 5000)

现在的结果是:

代码语言:javascript
复制
Profiling results
-----------------
  Total cpu time observed: 29488ms (out of 31641ms)
  Number of samples taken: 1687 (once every 17ms)

====================================
                        Caller
Idx  Total    Self    Name+srcLocal%
     ms(pct)  ms(pct)   Callee
====================================

这似乎做了一些好事,但我仍然看不到结果。

然后我尝试使用命令行(在将raco添加到%PATH%之后)

raco profile .\test.rkt

但我还是什么都没得到:

代码语言:javascript
复制
Profiling results
-----------------
  Total cpu time observed: 234ms (out of 281ms)
  Number of samples taken: 4 (once every 59ms)

====================================
                        Caller
Idx  Total    Self    Name+srcLocal%
     ms(pct)  ms(pct)   Callee
====================================

我没有想法了,所以谁能分享一下正确的方法,好吗?

顺便提一下,在DrRacket中,分析器的结果可以在函数的返回值之后吗?我的是一个很长的数字列表,我需要向上滚动才能看到(空的)分析器结果。(它不是在命令行上发生的,所以不是很重要)

谢谢

另外,我还尝试用(require profile/render-text)更改渲染器

和then (profile-thunk (thunk (my-fn arg1)) #:repeat 5000 #:renderer render)

或then (profile-thunk (thunk (my-fn arg1)) #:repeat 5000 #:renderer text:render)

或then (profile-thunk (thunk (my-fn arg1)) #:repeat 5000 #:renderer #'render)

但是我得到了关于renderer不是一个函数的错误消息。

EN

回答 1

Stack Overflow用户

发布于 2018-10-30 05:55:02

不完全是我所希望的,但我在mailing list中找到了一个修复程序。

要在DrRacket中启用性能分析,请执行以下操作:

  • 转到Language | Choose Language

并单击右上角的

  • Details
  • ,选择"Debugging

profiling“。(默认设置似乎仅为调试)

然后在控制台中或使用" run“按钮运行一些代码,然后:

  • 转到查看|显示profile

在屏幕的底部,会显示个人资料信息。据我所知,它不能很好地处理线程(为线程连接命令touch的行打印<<unknown>>37:28 ),但总比根本没有分析器要好。

我仍然没有解决为什么我不能得到profile-thunk函数或profile宏,或raco的profile命令的工作,但它可能与windows或我的安装?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53035715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档