我已经设置了Zend_Db_Table_Abstract,因此它使用元数据缓存,然后使用xhprof进行分析,以查看它使用了多少内存。
从_setupMetadata调用34次调用到Zend_Cache_Core :: load使用7mb内存,其中大部分是通过调用unserialize来使用的。
元数据缓存的配置为:
resources.cachemanager.db_metadata.frontend.name = Core
resources.cachemanager.db_metadata.frontend.options.automatic_serialization = true
resources.cachemanager.db_metadata.frontend.options.lifetime = null
resources.cachemanager.db_metadata.backend.name = File
resources.cachemanager.db_metadata.backend.options.cache_dir = APPLICATION_PATH "/../data/cache/db_metadata"
这是一个常见问题,还是我错过了什么?
答案 0 :(得分:0)
由于您正在序列化对象,因此需要大量内存。 特别是Zend_Db_ *对象。
这里我们遇到了同样的问题,最终我们建立了自己的缓存系统。
你可以做的是定义睡眠/唤醒,以便从Zend_Db_Table_Row_Abstract中删除所有不必要的ivar,但你必须确保不破坏类不变。
祝你好运。 :)