茱莉亚•埃文斯

分析器6/7周:更多的实验,和一个‘报告’子命令!!

你好!我没有写一个分析器上周博文,但是我今天写一个!!

最令人兴奋的事情发生在过去几周,我认为rbspy作品。当我在休假,我很担心我不能稳定它,它总是有点不稳定。

我认为这工作,虽然!我还没有得到任何新的bug报告在几周,和所有的bugsI已经运行到目前为止已经很容易修复。有一个问题在Mac版本是有点粗略的(因为Mac系统编程很难,我不打算投入更多时间初始化),但是我对Linux版本感觉很好!!

我相信仍有缺陷,但令人惊讶的和令人兴奋的对我来说,这个程序actuallyseems为别人工作!!他们可以用它来配置文件代码!!

新功能:rbspy报告

最近我主要致力于rbspy用户界面。我只是一个新功能叫做合并报告!!

我们的想法是,如果你有一个原始rbspy数据文件,你先前记录的,您可以使用rbspyreport从它产生不同的可视化(flamegraph / callgrind / summaryformats,正如上面记录)。这很有用,因为您可以从程序中记录原始数据,然后决定以后要如何可视化它!!

例如,这是记录一个简单的程序,然后生成一个文本总结报告到位:

$sudo rbspy record--原始文件raw.gz ruby ci/ruby programs/short_program.rb$rbspy report-f summary-i raw.gz-o summary.txt$cat summary.txt%self%total name100.00 100.00
          
           -未知0.00 100.00 ccc-ci/ruby程序/short_program.rb 0.00 100.00 bbb-ci/ruby程序/short_program.rb 0.00 100.00 aaa-ci/ruby程序/short_program.rb 0.00 100.00
           
- ci / ruby-programs / short_program.rb

我发布v0.2.0 !如果你想试试总是可以下载它githubreleases页面:https://github.com/rbspy/rbspy/releases

新特性:总是显示一个生活总结

我最近添加的其他新特性(我可能需要添加一个命令行参数todisable)——现在rbspy总是显示现场的总结分析数据到目前为止当你记录!!

这里的想法是,当你记录分析数据是有用的一个快速概述在全局的功能占用了大部分时间。所以rbspy会计算一个摘要并每秒更新一次。摘要是什么样子:前20名的功能(通过selftime)。

自我总结分析数据:% % 19.38 - 100.00总名称
          
           -未知11.52 29.07块内标识-未知11.52 29.07块内标识-/home/bork/.rben/versi/2.4.0/lib/ruby/gem/2.4.0/gems/rubocp-0.52.1/lib/rubocop/rubocp/cop/mixiin/arouS 11.15 11.33源-范围-/home/bork/.rben/versi/2.4.0/lib/ruby/gem/2.4.0/gems/2.4.0.0/gems/rubocop/2.52.2.4.0.0/versi/2.4.0/2.4.0/版本/2.4.0/rben/2.52.0.0.07块内标识-/home/bork/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rubocop-0.52.1/lib/rubocp/toke.rb 5.12 57.95-5.12 57.95-5.12块(2级)in on-send-/home/bork/.rben/versi/2.4.0/lib/rub/宝石/2.4.0/gems/2.4.0/gems/rubocp-0.52.1/lib/rubocp/cop/政委2.83 13.53-2.83-13.53-2块in每个“儿童”node-/home/bork/.rben/版本/2.4.0/lib/2.4.4.0/lib/Ruby/gems/2.4.4.0.4./gems/rubocop-0.52.1/lib/rubocop/ast/node.rb 2.74 14.17每个子节点-/home/bork/.rbenv/versi/2.4.0/lib/ruby/gem/2.4.4.0/gems/rubocop-0.52.1/lib/rubocp/ast/node.rb 2.29 4.94 adv-/home/bork/.rbenv/versi/2.4.0/lib/ruby/gem/2.4.0/gems/parser-2.4.0.2/lib/parser/parser/lexer.rb 1.37 7.40访问子节点-/home/bork/.rbenv/versi/2/2.4.4.0.0.0.2/2.4.0.0.2/lib/2.4.0.0.2.4.0/lib/ruby/gems/2.4.0/gems/rubocop-0.52.1/lib/rubocp/ast/节点.rb
          

新特性:跟踪C函数

我最近添加的最后一件事,重要的是——以前我只是忽略了theruby C函数堆栈。我还是不确定是否可以识别哪一个C函数运行时,但Iput他们回来。现在如果有一个Ruby C函数的堆栈,它会报道 - - - - - -未知 ,这不是非常有用但比只是忽略它。

下一个目标:发布测试版,编写一些文档

我的目标在这星期或下星期释放是把一个“我很不舒服,贝塔”释放,托普称之为实验性的。文档我也想做一个很酷的网站,教人们有点如何剖析作品,走过一些例子。

实验吗?吗?

最后更新我很兴奋我和eBPF做的一些实验。我对那些stillexcited但是他们暂停了,因为我决定最好finishsome网站内容,并编写一个文档。也许当我完成了,我可以回到实验:)

下周还我给谈rbspy !展望未来,但是首先我需要写thetalk:)