我的故障排除陷入了死胡同,我真的希望有人能提供帮助。
我正在使用rack-mini-profiler来帮助定位我的 Rails 网站中的潜在内存泄漏。我将其缩小到正在调用的方法。
高级配置文件:rack-mini-profiler high-level
SQL 配置文件:rack-mini-profiler 结果
在 SQL 配置文件图片中,请注意灰色条正上方和正下方的查询开始时间相差 1037 毫秒。这是我注意到的延迟,它会一直增长,直到我重新启动应用程序。
在本地运行时,我可以监控终端。当请求该方法时,只有 1 秒的延迟,然后它会执行。在此延迟期间,终端中不会显示任何查询或命令。
有人对我如何找出导致这种延迟的原因有任何想法吗?
我将 Ruby 2.2.0 与 Rails 4.1.6 一起使用。
谢谢!!
编辑:
这是 rack-mini-profiler 指向的方法:
def submit_answer
quiz_attempt = CourseCompletion.find_by_id(params[:course_completion_id]).quiz_started
choice = Choice.new(:answer_id => params[:answer], :quiz_attempt_id => quiz_attempt.id)
@success = choice.save
@answer = choice.answer
@question = @answer.question
@quiz_attempt = choice.quiz_attempt
render :layout => false
end