假设我们正确地解释了这个新的遗迹跟踪,似乎 4.75s 用于将大型数组转换为 JSON 字符串。这可能吗?我们使用的不是 ruby 企业版,而是 ruby 1.9.3。
我们正在使用 Rails 3.2.12。
每个数组包含大约 1 MB 的数据和 900 个对象。
我们的解释源于最后一个 mongo 查询是方法中的倒数第二行,这意味着跟踪中的红色块代表最后一行,它处理渲染和将数组转换为 JSON。
假设我们正确地解释了这个新的遗迹跟踪,似乎 4.75s 用于将大型数组转换为 JSON 字符串。这可能吗?我们使用的不是 ruby 企业版,而是 ruby 1.9.3。
我们正在使用 Rails 3.2.12。
每个数组包含大约 1 MB 的数据和 900 个对象。
我们的解释源于最后一个 mongo 查询是方法中的倒数第二行,这意味着跟踪中的红色块代表最后一行,它处理渲染和将数组转换为 JSON。
要弄清楚发生了什么,您需要使用递归的“分而治之”方法手动检测代码。
首先在代码中间进行检测,然后再次查看跟踪以确定问题是否高于或低于您检测的位置,并继续将问题减少一半,直到您遇到问题。
您需要将 API 调用添加到您的应用程序代码并使用方法跟踪器。
https://newrelic.com/docs/ruby/ruby-custom-metric-collection#method_tracers