加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 分析JRUBY rails应用程序输出元素

发布时间:2020-12-17 02:01:04 所属栏目:百科 来源:网络整理
导读:环境: Linux Mint 32位,J Ruby-1.6.5 [i386],Rails 3.1.3. 我试图在WEBrick(开发模式)中分析部署在JRuby 1.6.5上的rails应用程序. 我的JRUBY_OPTS:“ – Xlaunch.inproc = false –profile.flat” 在我的一个模型中,我引入了一个显式sleep(5)并确保在保存
环境: Linux Mint 32位,J Ruby-1.6.5 [i386],Rails 3.1.3.

我试图在WEBrick(开发模式)中分析部署在JRuby 1.6.5上的rails应用程序.

我的JRUBY_OPTS:“ – Xlaunch.inproc = false –profile.flat”

在我的一个模型中,我引入了一个显式sleep(5)并确保在保存模型时将此方法作为before_save hook的一部分进行调用.伪代码……

class Invoice < ActiveRecord::Base
 <some properties here...>

 before_save :delay

 private
 def delay
  sleep(5)
 end
end

上面的代码确保在Invoice的实例被持久化之前,该方法会自动调用delay.

现在,当我分析创建此模型实例的代码(通过rspec单元测试)时,我得到以下输出:

6.31        0.00        6.31          14  RSpec::Core::ExampleGroup.run
6.30        0.00        6.30          14  RSpec::Core::ExampleGroup.run_examples
6.30        0.00        6.30           1  RSpec::Core::Example#run
6.30        0.00        6.30           1  RSpec::Core::Example#with_around_hooks
5.58        0.00        5.58           1  <unknown>
5.43        0.00        5.43           2  Rails::Application::RoutesReloader#reload!
5.00        0.00        5.00           1  <unknown>
5.00        5.00        0.00           1  Kernel#sleep
4.87        0.00        4.87          40  ActiveSupport.execute_hook
4.39        0.00        4.39           3  ActionDispatch::Routing::RouteSet#eval_block
4.38        0.00        4.38           2  Rails::Application::RoutesReloader#load_paths

在上面的输出中,为什么我会看到这两个元素而不是Invoice.delay或类似的东西.

事实上,当我使用相同的JRUBY_OPTS(如上所述)启动我的rails服务器(WEBrick)时,我的所有应用程序代码框都在探查器输出中显示为未知元素!

我做错了吗?

解决方法

看起来你最大的配置文件方法限制
将-Xprofile.max.methods JRUBY_OPTS设置为一个大数字(默认为100000并且永远不够).例如.

export JRUBY_OPTS="--profile.flat -Xprofile.max.methods=10000000"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读