在PHP中获取对象的引用计数?

chy5wohz  于 2022-10-02  发布在  PHP
关注(0)|答案(0)|浏览(95)

我意识到对这个问题的下意识React是“你不知道”,但请听我说完。

基本上,我在SQL上的活动记录系统上运行,为了防止同一数据库行的重复对象,我在工厂中为每个当前加载的对象保留了一个‘数组’(使用自动递增的‘id’作为键)。

问题是,当我偶尔尝试通过这个系统处理90,000多行时,PHP遇到了内存问题。这很容易通过每几百行运行一次垃圾收集来解决,但不幸的是,因为工厂存储了每个对象的副本--PHP的垃圾收集不会释放这些节点中的任何一个。

我能想到的唯一解决方案是检查存储在工厂中的对象的引用计数是否等于1(即没有任何对象引用该类),如果是,则释放它们。这将解决我的问题,但是PHP没有引用计数方法吗?(除了DEBUG_ZVAL_DUMP,但这几乎是可用的)。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题