我看到了探查器结果,发现很多条目占用的时间超过50秒。 这是我的探查器结果 http://14.140.202.163/profiler.html
任何建议都将不胜感激
答案 0 :(得分:0)
问题似乎源于frontend\ultimo\default\template\catalin_seo/catalog/product/list.phtml
。
很难确切地说出原因,因为分析器通常不能提供完美的视图,但我的猜测是Mage_Catalog_Model_Product_Type_Configurable::getUsedProducts()
的调用是问题的重要部分。我猜你的类别页面中的某个地方正在迭代产品并为每个产品调用getUsedProducts()
。我之所以这么说是因为这个方法被调用超过9,000次。
那说,(再次,我在这里猜一点),问题本身似乎不是直接在getUsedProducts()
调用中,而是在_afterLoad()
集合钩子中。如果你看一下该方法中的探查器代码,看起来TTT4是调用$this->_loadPrices();
的最糟糕的犯罪者。对getUsedProducts()
的9,000次调用意味着大量的迭代,但_afterLoad()
方法仅被调用31次,这意味着getUsedProducts()
的结果被缓存,即没有被重新加载。所以Mage_Catalog_Model_Resource_Product_Type_Configurable_Attribute_Collection::_loadPrices()
似乎发生了一些事情(虽然我不能确切地说出来是什么)。