我写了一个方法,从模型中获取所有记录并对每个记录执行操作。当我最初运行该方法时,我得到了每条记录0.2s的预期结果。函数的每次重复都会使处理时间增加x倍,但它不成比例,即:.2 - > .3 - > .6 - > .5 - > .6 - > 1.0。
对方法的某些部分执行基准测试告诉我,性能的降低是通过整个方法传播的 - 没有明确的迹象表明只有部分方法会减慢。
SQL响应时间在每次运行时几乎保持不变,它们似乎不是问题的原因。
记录数是正确的(它没有处理相同的记录两次)。
我尝试在每次调用方法时清除所有变量(local_variables.each {| e | eval("#{e} = nil")}),但这也没有带来任何影响。
我理解,根据这些信息进行诊断是一项棘手的事情,但任何方向都非常感激。
添加方法:https://github.com/chungalunga/cncm/blob/master/app/controllers/idents_controller.rb(第138行)。对不起代码,学习项目:)不要介意通过show方法调用5次函数 - 我只是用它来模拟函数上的5个ajax调用。
谢谢! 戴恩