繁体   English   中英

joomla自定义组件内存使用情况

[英]joomla custom component memory usage

我已经为我的Joomla网站编写了一个自定义组件。 该组件在php中,基于MVC范例。 该组件正常工作,但是使用几个月后,在某些部分中会显示以下消息:

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()开始记录您的内存,不久您应该可以指出(希望是单个)内存失控的点。 然后应用以上建议进行修复。

joomla调试信息

可能您正在处理大量数据。 启用Riccardo指示的调试控制台以测试您的查询。 还要检查您是否使用array_push或类似的函数来转换大量数据。 您还可以使用Xdebug来查看代码的瓶颈所在。 你可以找到一个指南,在这里设置它的Xdebug

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM