memory-management - Zend_Cache 反序列化 - 内存占用?

标签 memory-management serialization zend-cache

我设置了 Zend_Db_Table_Abstract,因此它使用元数据缓存,然后使用 xhprof 进行概要分析以查看它使用了多少内存。

原来从 _setupMetadata 到 Zend_Cache_Core::load 的 34 次调用占用了 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"

这是一个常见问题,还是我遗漏了什么?

最佳答案

由于您正在序列化对象,因此它会占用大量内存。 特别是 Zend_Db_* 对象。

在这里我们遇到了同样的问题,我们最终让您拥有自己的缓存系统。

你可以做的是定义 sleep /唤醒,这样你就可以从 Zend_Db_Table_Row_Abstract 中删除所有不必要的 ivar,但你必须确保不破坏类不变性。

祝你好运。 :)

关于memory-management - Zend_Cache 反序列化 - 内存占用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3280216/

相关文章:

c# - 如何判断 .NET 中的反序列化 JSON 对象中是否曾经定义过某个键?

zend-framework - 不止一个 Zend_Cache 配置?

zend-framework - Zend Framework 的后端缓存与前端缓存有何不同

c++ - 字符指针返回值垃圾

内存寻址

c++ - 类定义中涉及私有(private)unique_ptr时C++中的引用初始化

python - 如何控制多线程中的内存使用?

php - 序列化器 Symfony 上的回调

java - jackson 没有反序列化它已经序列化的通用列表

php - 如何使用 Zend_Cache 标识符?