对于使用CodeIgniter构建的应用程序,我有一个相对较大的 PHP 代码库(数千行)。为了能够跟踪性能问题并能够生成统计数据等,开发服务器运行Xhprof。如果脚本实际上进入了日志记录部分,这可以正常工作。
但是,我现在遇到了脚本超时的情况。在开发服务器上,它只是给出超时(“未找到服务器”)错误,有时甚至会导致 Apache 进程崩溃。不生成 Xhprof 文件,CodeIgniter 日志系统不生成任何内容。错误报告已启用。
在实时环境(好吧,实时服务器的镜像)上,应用程序实际上会生成一个错误:
致命错误:第 493 行 /home/www/application/system/database/drivers/mysql/mysql_driver.php 中允许的内存大小为 33554432 字节已用尽(尝试分配 261900 字节)
这一点,以及如何重现错误的线索,让我有点预感从哪里开始寻找解决方案。但这是一项耗时的工作。
我正在寻找一种能够追踪实际“内存泄漏”发生位置的方法。而不是逐行手动调试。非常感谢任何建议。
更新:服务器内存不足不是问题。在具有更多内存的开发服务器上,也会出现同样的问题。问题是一个无限循环,分配了更多的内存,然后我的服务器可以处理。问题仍然存在:如何快速追踪这些错误?