问题标签 [ruby-prof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
962 浏览

ruby-on-rails - 运行配置文件测试时出现 Ruby 分段错误

运行时出现以下分段错误错误rake test:profile。我正在使用红宝石1.9.2p290 (2011-07-09 revision 32553) [i686-linux]。但是 Ruby 1.9.2 的 p320 版本也会发生这种情况,Ruby 1.9.3 也会发生类似的错误。

active_support/testing/performance/ruby.rb:36居然说只是RubyProf.pause。我正在使用配置文件选项运行测试:runs => 5, :metrics => [:cpu_time], :formats => [:tree]。也可以在帖子末尾查看我的宝石清单。

任何建议将不胜感激。

错误跟踪:

宝石清单:

0 投票
1 回答
671 浏览

ruby - 简介 Jekyll 构建时间

我使用 Jekyll 来构建我的站点,并且开始需要相当长的时间(几分钟)来编译站点(大约 600 多篇文章)。我怀疑某些插件可能是负责任的,但似乎必须有一种更好的方法来分析构建的性能,而不是简单地打开和关闭不同的插件和解析器。

构建过程中的最小输出没有给出任何提示——所有时间都只是花在“构建站点”步骤中。我想我可以通过运行 jekyll 脚本来获得一些想法,所以我在我的站点根目录中ruby-prof制作了 jekyll 脚本的快速本地副本并运行jekyll.rb

该站点看起来构建良好,但分析器只是因丑陋的核心转储而窒息。

有没有更智能的方法来分析我的网站的构建过程并找出它为什么这么慢?

其次,有没有什么技巧可以加快编译时间?(例如,我看到 中存在一个_cache目录_plugins,但不知道它的确切作用。我还看到了--autoJekyll 的标志,但不知道如何配置它以使其始终重新编译某些页面或他们没有改变(例如,推特插件每次都需要重新运行),而不是重新编译未更改的帖子)。

如果有人想亲身体验一下,该网站的 Jekyll 源代码在 Github 上,自述文件中有一些关于额外 gem 依赖项的注释。

0 投票
1 回答
1578 浏览

ruby - 使用 rvm gemset 分析内存使用情况是否有技巧?

我一直在尝试让ruby​​-prof在带有 Ruby 1.8.7 的 Mac OS X 上为内存使用工作,但到目前为止我运气不佳。

我从文档中了解到该RubyProf::MEMORY模式需要修补版本的 Ruby。我尝试通过 RVM安装 GC 补丁版本(我在Rails 文档中找到了引用):

根据此命令的输出,一切看起来都不错。我在控制台输出中清楚地看到“正在应用补丁 'ruby187gc'”。

尝试使用 RVM gemset 时似乎出现了问题。我编写了以下脚本来测试它:

当我在此脚本之前添加 时rvm use 1.8.7 --patch ruby187gc,它会创建文件“profile-graph.html”,显示脚本中所有不同方法调用的内存使用情况,正如我所期望的那样。但是,当我尝试类似 时rvm use 1.8.7@gemset_name --patch ruby187gc,输出文件包含所有“nan”值。

是什么赋予了?使用修补版本的 Ruby 和 RVM gemset 有什么特别的技巧吗?问题出在其他地方吗?我正在祈祷,希望有人遇到过非常相似的问题并且之前已经解决了这个问题。

0 投票
1 回答
272 浏览

ruby-on-rails - ruby-prof 的消极时期?

我正在使用基于 ruby​​-prof 的 rspec-prof 来分析需要相当长的时间的规范。但是,我无法解释我得到的结果,因为它们报告的是负面时间。我是否错误地使用了 rspec-prof/ruby-prof?这是一个错误吗?

0 投票
2 回答
646 浏览

ruby-on-rails - Newrelic 开发者模式不能与 ruby​​-prof 一起使用

newrelic_rpm在 Rails 3.2 应用程序中本地使用开发人员模式。这工作正常。

当我ruby-prof在 newrelic 本地仪表板中安装并单击“开始分析”并返回我的应用程序时,我的应用程序中的每个页面都为 #.

回溯的前几行:

任何想法如何解决问题所在?

0 投票
2 回答
1195 浏览

ruby - 如何让 ruby​​-prof 忽略 Ruby 核心/标准库/gem 方法?

我是 Ruby 分析的新手,它似乎ruby-prof是一个流行的选择。我刚刚安装了 gem 并调用了我的程序:

但是,输出非常冗长,因为包含所有 Ruby 核心和标准库方法以及其他 gem 的分析数据。例如,前三行是:

这对我来说不是远程有用的信息,因为我已经知道我的程序处理了很多字符串和数组,并且大概这些类已经对它们进行了优化。只关心代码中的热点。

我尝试了其他一些打印机模式,例如-p graph_htmland -p call_stack,但它们都有同样的问题。

我看到它ruby-prof支持一些方法消除和简化:

但似乎没有任何明显的方法可以得到我真正想要的东西,即为我的代码分析数据,即在 Ruby 核心/stdlib 的代码内部经过的时间,而其他宝石只计为我的内部经过的时间代码。

一旦我看到我的代码有一个方法foo,由于被调用数千次并且性能不佳而成为性能瓶颈,那么我只想查看我的代码和调用的核心/库代码之间经过的时间细分那个特定的方法。

我不明白为什么这不是标准功能,因为我希望这是每个人都想做的事情:首先分析你自己的代码,然后一旦你用完了要优化的东西,就可能开始优化 gem您使用甚至可能使用 Ruby 核心/标准库。我错过了什么?

0 投票
1 回答
312 浏览

ruby - 带有图形打印机的 Ruby-prof 和自行排序的总百分比高于 100%

如果我跑

我的 graph.txt 的前几行看起来像:

我认为这不是我的脚本aggregate.rb 所特有的。因此,为了简洁起见,我将源代码排除在外。

问题是:为什么 %total 列中的百分比高于 100%?图形打印机不允许自行排序吗?这是一个错误还是我忽略了一些东西。非常感谢帮助。

谢谢!

0 投票
4 回答
19681 浏览

ruby-on-rails - 如何追踪我的 Ruby 代码中的内存泄漏?

问题

我正在调试 rake 任务中的内存泄漏。我想看到一个调用堆栈:

  • 有生命的物体
  • 最初分配这些对象的对象或行

ruby-prof 有可能吗?

如果不是,我应该使用什么工具?

设置

宝石

耙任务

  • 使用 DATA LOAD INFILE 和 Active Record 对象将 CSV 文件直接导入 MySql 数据库。

我试过的

我已经尝试过这些模式

  • RubyProf::分配
  • RubyProf::MEMORY

它在文档中所说的只是:

RubyProf::ALLOCATIONS 对象分配报告显示程序中每个方法分配了多少对象。

RubyProf::MEMORY 内存使用报告显示程序中每个方法使用了多少内存。

这意味着 ruby​​-prof 只报告对象的总分配,而不仅仅是生活中的对象。

我尝试过Ruby-MassBloat Check,但似乎都无法做到我想要的。Ruby-Mass 也崩溃了,因为它出于某种原因在内存中找到了 FactoryGirl 对象......

0 投票
1 回答
298 浏览

ruby-on-rails - NewRelic 代理中 ruby​​-prof 的目的是什么?

我测试了 New Relic 的 ruby​​ agent 3.7.1.188 但我不明白 ruby​​-prof gem 的用途。当我转到 时http://localhost:3000/newrelic,右侧有一条消息说我可以使用 ruby​​-prof gem 来显示配置文件。所以我安装了 ruby​​-prof gem 并点击“开始分析”,然后点击我的网站,最后点击“停止分析”。我现在可以单击 URL 以查看某些操作持续多长时间。但是没有 ruby​​-prof 我得到了相同的统计数据。那么 ruby​​-prof 关于 New Relic 代理的确切目的在哪里?

Ruby 版本:2.0.0 Rails 版本:4.0.0

0 投票
2 回答
1462 浏览

ruby-on-rails - 如何使用 ruby​​-prof 为 Rails 应用程序输出 KCacheGrind 的调用树分析?

根据文档,您可以分析 Rails 应用程序 http://ruby-prof.rubyforge.org/

我将此添加到我的 config.ru

但是它只输出以下文件

输出完全无法理解。所以我下载了 QCacheGrind for Windows。 http://sourceforge.net/projects/qcachegrindwin/?source=recommended

它不会读取任何这些文件。ruby-prof 文档说您可以生成 KCacheGrind 文件

RubyProf::CallTreePrinter - 创建与 KCachegrind 兼容的调用树报告。

但它不会说如何使用 Rails 来做到这一点。我查看了 RubyProf 的页面,但它是空的。 http://ruby-prof.rubyforge.org/classes/Rack/RubyProf.html

Ruby 2.0.0,Rails 4.0.3