我目前正在内部使用插件模型。
每次我需要查找我使用的参考时:
$this->Viewed = ClassRegistry::init('Viewed.Viewed');
因此它将初始化保存数据的模型。 使用它是一个好主意
$this->Viewed = ClassRegistry::removeObject('Viewed.Viewed')
在脚本的执行时间内保存内存?还是会增加更多时间? 这种行为在代码中被大量使用......所以每个收益都是必需的。
答案 0 :(得分:0)
这是CakePHP的ClassRegistry :: removeObject($ key)函数的代码:
public static function removeObject($key) {
$_this = ClassRegistry::getInstance();
$key = Inflector::underscore($key);
if (isset($_this->_objects[$key])) {
unset($_this->_objects[$key]);
}
}
它真正做的就是取消数组中的相关键,这可能包含所有CakePHP的对象。 PHP中的unset()函数不会立即释放内存,尽管PHP可能最终会回收该内存。由于在ClassRegistry :: removeObject()中没有太多进展,我不会太担心它会占用更多的处理。
但请记住,一旦PHP脚本完成执行,内存也将被回收。因此,如果您只能在脚本末尾调用它,那么调用ClassRegistry :: removeObject()并没有太大意义。 PHP并不是真的设计用于手动内存管理。如果内存真的开始成为一个问题,你也可以考虑使用exec()以应用程序可以调用的另一种语言编写外部内容。