分析 Rails 控制器操作

2024-02-03

在 Ruby on Rails 中分析控制器操作的最佳方法是什么?目前我正在使用蛮力方法扔进去puts Time.now我认为之间的调用将成为瓶颈。但这感觉真的非常非常肮脏。必须有更好的方法。


我不久前掌握了这项技术,发现它非常方便。

当它就位后,您可以添加?profile=true到任何点击控制器的 URL。您的操作将照常运行,但它不会将渲染的页面传递给浏览器,而是发送一个详细的、格式良好的 ruby​​-prof 页面,显示您的操作花费时间的地方。

首先,将 ruby​​-prof 添加到您的 Gemfile 中,可能在开发组中:

group :development do
    gem "ruby-prof"
end

然后添加一个周围过滤器 http://guides.rubyonrails.org/action_controller_overview.html#after-filters-and-around-filters到您的应用程序控制器:

around_action :performance_profile if Rails.env == 'development'

def performance_profile
  if params[:profile] && result = RubyProf.profile { yield }

    out = StringIO.new
    RubyProf::GraphHtmlPrinter.new(result).print out, :min_percent => 0
    self.response_body = out.string

  else
    yield
  end
end

阅读 ruby​​-prof 的输出是一门艺术,但我将把它作为练习。

ScottJShea 的补充说明:如果您想更改测量类型,请放置以下内容:

RubyProf.measure_mode = RubyProf::GC_TIME #example

之前if在应用程序控制器的配置文件方法中。您可以在以下位置找到可用测量的列表:ruby-prof 页面 https://github.com/ruby-prof/ruby-prof#measurements。截至撰写本文时memory and allocations数据流似乎已损坏(见缺陷 https://github.com/ruby-prof/ruby-prof/issues/86).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分析 Rails 控制器操作 的相关文章

  • 将对象数组转换为 ActiveRecord::Relation

    我有一个对象数组 我们称其为Indicator 我想运行 Indicator 类方法 def self subjects该数组上的种类 范围等 我知道在一组对象上运行类方法的唯一方法是让它们成为 ActiveRecord Relation
  • RegistrationsController#create 中的 ActionController::InvalidAuthenticityToken

    您好 我正在使用 Devise 进行用户身份验证 突然我的新用户注册无法正常工作 这是我收到的错误 ActionController InvalidAuthenticityToken Rails root home example app
  • 为什么 npm install 失败并出现与 node-sass 相关的错误?

    我正在使用我继承的 Rails 应用程序 我正在尝试运行npm install命令但我不断收到errors以下 我尝试跑步npm rebuild node sass正如输出中所建议的 但它没有帮助 我遇到这个问题乌班图16也OS X gt
  • 安装heroku toolbelt后出现Ruby错误

    我正在 win 7 32 位系统上使用 Heroku 但我没有管理员权限 我已经下载并安装了heroku工具带如下http community webfaction com questions 11803 heroku toolbelt h
  • ruby:类实例变量与实例变量

    我的想法是为来自不同国家的人们创建一个社区维基java因为读了很多解释 我无法理解任何东西 直到我真正尝试了一些东西 拼图的各个部分开始找到它们的位置 但我首先需要确保我做对了 来自这样的背景 我很困惑地发现 variable可能意味着两个
  • 在 Ruby 中按名称获取一个类?

    有一个包含模块和类名称的字符串 例如 Admin MetaDatasController 我如何获得实际课程 如果没有模块 以下代码将起作用 Kernel const get MetaDatasController 但它与模块中断 ruby
  • 捆绑安装无法安装 libxml-ruby

    我是 Ruby 世界的新手 我需要克隆一个现有项目 说明是 source env development bundle install 但它失败了 Using libv8 3 16 14 15 Fetching libxml ruby 2
  • MonkeyPatching ActiveJobs

    我在 ActiveJobs 的猴子修补部分遇到问题 我在 config initializers extensions arguements rb 中有以下代码 module ActiveJob module Arguments TYPE
  • 使用 Figaro 和 Secrets.yml 管理环境变量

    我有一个 Rails 4 1 应用程序 我正在尝试组织我的环境变量 截至目前 我的 config 文件夹中有一个 Secrets yml 文件 我还安装了费加罗宝石 我的目标是将所有环境变量放在 application yml 未签入 gi
  • 国家/地区的下拉菜单

    您好 我想为国家和州实现下拉菜单 州下拉列表应根据所选国家 地区更改其值 有没有任何插件或 gem 可以在 Rails 中执行此操作 尝试卡门插件 http autonomousmachine com posts 2009 4 1 carm
  • 在 Rails 中,如何为模型的新实例生成唯一的序列号?

    在 Rails 中 我正在寻找一种方法来生成自动递增序列号 以便为模型的新实例保存内部记录 我想避免创建特定于数据库的代码 而是拥有一个无论数据库如何都可以工作的解决方案 我当前的想法是等到模型保存后 然后获取已保存模型的 ID 并将其用作
  • 如何在同一视图中渲染两个分页且可 ajax 的集合?

    在 Rails 3 2 索引视图中 我正在渲染两个部分 并且在部分 Show some fields 分页不起作用 如果我改变will paginate要获取实例变量 分页可以工作 但是集合错误 当调用部分时 如何将
  • 如何按键按字母顺序对 Ruby 哈希进行排序

    我正在尝试按键按字母顺序对哈希进行排序 但如果不创建自己的排序类 我似乎无法找到一种方法来做到这一点 我发现下面的代码可以按值排序 如果它是整数 我正在尝试修改它 但没有任何运气 temp ninjas 36 temp pirates 12
  • Twitter Bootstrap Modal 无法在 Rails 中工作

    我还很新Rails and to twitter bootstrap 我正在研究模态 但我收到了 NoMethodError 未定义的方法 渲染 当我删除 代码来自my release js erb页面 它消失但没有窗口出现 另外 还有错误
  • 找不到关联,Rails 3

    class Membership lt ActiveRecord Base belongs to role belongs to user end class User lt ActiveRecord Base has many roles
  • 在 Rails 6 上添加外部 js 文件

    我在 app gt javascript gt packs 下创建了一个名为 custom 的文件夹 并放置以下外部 js metisMenu min js startmin js 然后在 app gt javascript gt pack
  • ActiveRecord 和关联排序

    我有一个像这样的简单 AR 关联 Question has many answers Answer belongs to question with question id int 11 NOT NULL is accepted tinyi
  • 加载新的 Turbo Frame 时如何执行 JavaScript

    我在 Rails 应用程序中使用 Turbo Frames 并且在每个页面上都有
  • 安装适用于 Windows 7 的 Ruby on Rails(最新)

    我是一名设计师 而不是一名编码员 并且在首次安装时遇到了问题 我下载了 Rails 1 8 6 和 Instant Rails 我打开控制台并尝试更新 gem 那里没有任何作用 我想我会删除所有内容并重新开始 因为我确信我现在破坏了某些东西
  • 如何使用 Rspec 来测试使用 Paperclip 的模型是否正在验证上传文件的大小?

    该模型 class Attachment lt ActiveRecord Base belongs to narrative attr accessible description user id narrative id has atta

随机推荐

  • 在 Python 中调用函数列表的惯用方式是什么?

    我有一个回调函数列表 当事件触发时我需要调用这些函数 这是惯用的Python吗 def first callback m print first m def second callback m print second m lst firs
  • 在状态计算中“不断转动曲柄”的有效方法

    我有一个有状态的进程 被建模为i gt RWS r w s a 我想给它一个输入cmds i 目前我做的是批发 let play runGame theGame go where go finished go v n cmds do end
  • 位置相关代码和位置无关代码有什么区别? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 位置相关代码和位置无关代码有什么区别
  • 获取下 N 个最近的地理点

    我在我的 Android 应用程序中有一个包含地理点的数据库表 纬度和经度是十进制度值 大约 1000 点 我需要选择距离某个给定地理点最近的 20 个点 我在 Stackoverflow 找到了如何计算两个地理点之间的距离的答案 并且非常
  • 使用 Capybara 存根浏览器时间和时区

    我有一个 JavaScript 组件 例如日期选择器 它很大程度上依赖于 当前系统时间 当前系统时区 在 Ruby 和 Capybara 中 可以在诸如Timecop https github com travisjeffery timec
  • iPhone core蓝牙中央管理器发送数据到外设

    我想将数据从 iPhone 发送到被发现并连接的蓝牙设备 我指的是this http weblog invasivecode com post 39707371281 core bluetooth for ios 6 core blueto
  • 方形网格 - XML

    在我的研究中 我必须编写一个 Android 应用程序来从气象站检索天气数据 这些将显示在块中 这些块将分成 4 列和 2 行 所以我想创建一个 4 列 2 行的方形网格来提供块 有人可以提供解决方案来帮助我创建这个网格吗 有很多选择 1
  • 为什么这段代码在 Windows 和 Linux 上打印出不同的结果?

    此代码在 Windows 和 Linux 之间打印不同的字符串 test py print join str i for i in range 10000 平台 x86 64 Linux 4 4 0 17763 微软Python版本 3 7
  • 在 C# 中将字节转换为二进制字符串

    在 c 中我正在转换byte to binary 实际答案是00111111但给出的结果是111111 现在我真的需要显示前面的 2 个 0 谁能告诉我该怎么做 我在用 Convert ToString byteArray 20 2 字节值
  • 适用于更大图像的 Android Image Getter

    我已使用所有标准网络相关代码来获取有关的图像45KB to 75KB但所有这些方法都失败了 对于大约的文件来说工作正常3 5KB图像的大小 我怎样才能实现下载图像45 75KB为了在 Android 中的 ImageView 上显示它们以进
  • 在 SpriteKit 项目中使用精灵图集、纹理图集或资源目录

    Apple 在 SpriteKit 项目中推荐的资源组织方式在引擎的历史进程中发生了很大变化 旧方法中也存在缺陷 阻碍了这些实践的实施并需要解决方法 SO 上的旧问答充满了过时的信息或被有关处理不再存在的错误的信息所混淆的信息 需要在 SO
  • 对一维数据进行最佳聚类? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有人有一篇论文解释如何CKmeans 1d dp http cran r project org
  • 一个队列上有多个 Azure Webjob 实例

    我正在寻找一种方法让我的 azure webjob 的多个实例一起运行并清除我的队列 我们应用程序的功能之一是减少用户在其网站上的每次页面浏览的信用 由 ajax 调用 目前 我们有近 600 个此类网站 其网站的每个页面视图都会生成一个调
  • 将图标添加到从右到左的 ListView 项目会导致图标在 C# WinForms 中翻转

    我有一个ListView Its RightToLeft属性设置为Yes和它的RightToLeftLayout被设定为True The ListView填充了目录中的文件 在我的代码中 我使用以下命令获取文件的适当图标System Dra
  • Spring Data Neo4j 4 和可分页@QueryResult

    我正在尝试介绍Pageable支持我通过 SDN 4 存储库方法进行的自定义 Cyper 查询 Query value MATCH parentD CONTAINS gt childD Decision ru CREATED BY gt u
  • 如何在MSVC中使用MingW编译的库?

    我用 MingW MSYS 编译了几个库 生成的静态库始终是 a 文件 当我尝试将库与 MSVC 项目链接时 Visual Studio 抛出 无法解析的外部符号 这意味着 a 静态库与 MS C 链接器不兼容 我认为它必须转换为 MSVC
  • Aurelia JS - 迭代子元素(kendo UI)?

    考虑这里给出的基本示例 https aurelia ui toolkits github io demo kendo samples slider basic use https aurelia ui toolkits github io
  • :footnotes 扩展在 Redcarpet Ruby gem 中不起作用

    我一定错过了一些非常明显的东西 我无法获得与红地毯一起使用的脚注 我有3 0 0版本 gt gem list redcarpet LOCAL GEMS redcarpet 3 0 0 我正在尝试来自的代码Github 存储库上的测试代码 h
  • 如何创建 .htaccess 来显示 SVG?

    我正在测试一个在本地运行良好的网站 但是当我将其上传到我的 godaddy 服务器时 我的 SVG 没有在浏览器中呈现 经过一些网络搜索并与技术支持合作后 我了解到我需要在图像文件夹目录中配置一个 htaccess 文件才能正确显示 SVG
  • 分析 Rails 控制器操作

    在 Ruby on Rails 中分析控制器操作的最佳方法是什么 目前我正在使用蛮力方法扔进去puts Time now我认为之间的调用将成为瓶颈 但这感觉真的非常非常肮脏 必须有更好的方法 我不久前掌握了这项技术 发现它非常方便 当它就位