【问题标题】:Rails 3: converting large arrays to JSON takes nearly 5 seconds?Rails 3:将大型数组转换为 JSON 需要将近 5 秒?
【发布时间】:2013-06-12 20:20:17
【问题描述】:

假设我们正确解释了这个新的遗迹跟踪,似乎 4.75 秒用于将大型数组转换为 JSON 字符串。这可能吗?我们使用的不是 ruby​​ 企业版,而是 ruby​​ 1.9.3。

我们使用的是 Rails 3.2.12。

每个数组包含大约 1 MB 的数据和 900 个对象。

我们的解释源于最后一个 mongo 查询是方法中的倒数第二行,这意味着跟踪中的红色块代表最后一行,它处理将数组渲染和转换为 JSON。

方法:https://gist.github.com/panabee/39401fae827ee6aca8bd

【问题讨论】:

  • 为什么不在代码中手动转换它,看看它是否需要那么长时间。然后,您还可以查看生成的 JSON blob 有多大。

标签: ruby-on-rails ruby ruby-on-rails-3 mongodb newrelic


【解决方案1】:

要弄清楚发生了什么,您需要使用递归的“分而治之”方法手动检测代码。

首先在代码中间进行检测,然后再次查看跟踪以确定问题是否高于或低于您检测的位置,并继续将问题减少一半,直到您遇到问题。

您需要将 API 调用添加到您的应用程序代码并使用方法跟踪器。

https://newrelic.com/docs/ruby/ruby-custom-metric-collection#method_tracers

【讨论】:

  • 谢谢,亚当。这是否意味着我们的解释是错误的,即执行那一行(最后一个 mongo 查询之后的那一行)不需要 4.75 秒?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
相关资源
最近更新 更多