joomla自定义组件内存使用情况
问题描述:
我已经为我的Joomla网站编写了自定义组件。 该组件是在PHP中,并基于MVC范例。该组件的工作原理,但经过几个月的使用后,在一些地区出现此消息:joomla自定义组件内存使用情况
Fatal error: Allowed memory size of XXXXX bytes exhausted (tried to allocate XXX bytes) in XXX\my_sql.php
我的组件相同的数据库不同的查询。该网站有256M像内存限制。我知道我可以将内存增加到512MB,但还有其他方法吗?我如何理解我的组件使用了多少内存?
谢谢
答
以下将向所有用户显示调试信息;因此您可能希望在开发机器上离线执行此操作(制作生产数据库的副本)。
在配置中启用调试,然后打开Extensions-Plugins并启用Debug插件;现在重新加载前端,你会看到时间,内存和查询的完整列表(你应该看到类似下面的截图,点击标题打开它们。如果你没有看到它,暂时设置其中一个你的网站的默认模板(让模板设计者知道他忘了包含调试占位符)
你用尽的内存量是php的,所以你很可能在内存中保留了太多东西。结果集,进行新的查询以及将结果缓存到对象中,这可能是原因,并且您可以通过在主查询中一次迭代更少的记录来快速解决它(这确实是一个肮脏的解决方案,但没有其他更改通常需要)
一个快速的方法是造成问题
您就可以开始记录与memory_get_usage()
你的记忆,不久你应该能够指出(希望单),点它生长失控的部分隔离开来。然后应用上述建议来解决它。
这个扩展已经是活动的,但我没有看到时间,内存等... – lucacatr
确保你在站点全局配置中启用调试:你应该看到类似我附在主帖 –
的图片我会检查... – lucacatr