DebugKit 的工具栏缓存耗尽内存
DebugKit's toolbar cache exhausts memory
我有一个将大变量传递给视图的控制器,但考虑到上下文没有什么不合理的(PHP 使用大约 100 MB 的 RAM)。
我的问题是 DebugKit 生成了一个大型临时文件,需要大量内存才能在下一个反序列化 运行:
app\tmp\cache\cake_toolbar_cache7ee836dd8c8f85f0f69f716bad0bbd94
这与 Solution to Fatal error - Allowed memory size exhausted in CakePHP FileEngine.php 中描述的问题相同,只是我的 文件在每次加载页面时都会增长 。无论我让 PHP 分配多少内存,它最终都会超出系统能够处理的限制。我需要手动删除文件并重新开始。
我不完全确定 DebugKit 试图处理的确切数据片段是什么,但该文件似乎包含一个顶级数字数组,每个子数组都包含我的数据集的完整副本。我怀疑它可能是 请求历史记录 .
我已经确认当调试级别为零且 DebugKit 未加载时没有内存问题,因此它不会成为生产中的问题,但它在开发过程中出现了。有简单的解决方法吗?
一些彻底的测试证实它确实是 "History" 面板。该面板可在您的控制器中配置,因此我们可以:
缩短历史:
public $components = array(
'DebugKit.Toolbar' => array('history' => 2),
);
禁用历史记录:
public $components = array(
'DebugKit.Toolbar' => array(
'panels' => array(
'history' => false,
),
),
);
我用第二种方法得到了更好的结果,而且我没有使用历史记录。
我有一个将大变量传递给视图的控制器,但考虑到上下文没有什么不合理的(PHP 使用大约 100 MB 的 RAM)。
我的问题是 DebugKit 生成了一个大型临时文件,需要大量内存才能在下一个反序列化 运行:
app\tmp\cache\cake_toolbar_cache7ee836dd8c8f85f0f69f716bad0bbd94
这与 Solution to Fatal error - Allowed memory size exhausted in CakePHP FileEngine.php 中描述的问题相同,只是我的 文件在每次加载页面时都会增长 。无论我让 PHP 分配多少内存,它最终都会超出系统能够处理的限制。我需要手动删除文件并重新开始。
我不完全确定 DebugKit 试图处理的确切数据片段是什么,但该文件似乎包含一个顶级数字数组,每个子数组都包含我的数据集的完整副本。我怀疑它可能是 请求历史记录 .
我已经确认当调试级别为零且 DebugKit 未加载时没有内存问题,因此它不会成为生产中的问题,但它在开发过程中出现了。有简单的解决方法吗?
一些彻底的测试证实它确实是 "History" 面板。该面板可在您的控制器中配置,因此我们可以:
缩短历史:
public $components = array( 'DebugKit.Toolbar' => array('history' => 2), );
禁用历史记录:
public $components = array( 'DebugKit.Toolbar' => array( 'panels' => array( 'history' => false, ), ), );
我用第二种方法得到了更好的结果,而且我没有使用历史记录。