阻止内存泄漏并提高性能的最佳实践

时间:2009-07-18 11:56:32

标签: php performance memory-leaks

简单来说,我是一个相当新的PHP编码器,我想知道是否有人可以指导我提高代码性能的最佳方法,以及阻止那些讨厌的内存泄漏,我的主机是那些没有'安装了APC等,所以必须手动编码-_-

2 个答案:

答案 0 :(得分:2)

我不认为普通的内存泄漏(比如忘记处理对象或字符串)在PHP中很常见,但一般来说资源泄漏。我遇到过以下问题:

  • 数据库连接 - 您应该真正致电pg_close / mysql_close /等。当你完成连接时。虽然我认为PHP连接池减轻了这种情况(但可能存在问题)。

  • 图片 - 如果您使用gd2扩展程序打开或创建图片,则需要image_destroy这些,否则他们将永远占用内存。并且图像在数据大小方面往往很大。

请注意,如果您的脚本作为纯CGI运行(没有HTTP服务器模块),那么当脚本退出时,资源将被有效清理。但是在脚本运行时期间可能仍然存在内存问题,尤其是在图像中,在单个脚本执行中执行许多操作并不罕见。

答案 1 :(得分:0)

一般来说,php脚本不能泄漏内存。 php运行时管理其脚本的所有内存。脚本本身可能会泄漏内存,但这将在php进程结束时回收。由于php主要用于处理http请求,并且这些请求通常运行的时间非常短,因此如果您正在泄漏一些内存,这将使其成为无问题。因此,如果您将php用于非http任务,那么内存泄漏应该只会引起您的注意。对于您来说,性能应该比内存使用更重要。使用xdebug等工具来分析您的代码。