代码之家  ›  专栏  ›  技术社区  ›  Marc Towler

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

  •  0
  • Marc Towler  · 技术社区  · 17 年前

    简单地说,我是一个非常新的PHP编码人员,我想知道是否有人能指导我找到提高代码性能和阻止那些令人讨厌的内存泄漏的最佳方法,我的主机是那些没有安装APC或类似程序的主机之一,因此它都必须手工编码。--

    2 回复  |  直到 17 年前
        1
  •  2
  •   Edmund    17 年前

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

    • 数据库连接——您应该真正调用 pg_close / mysql_close /等你连接好了。尽管我认为phps连接池可以缓解这种情况(但也可能有它自己的问题)。

    • 图像——如果使用gd2扩展来打开或创建图像,则需要 image_destroy 因为否则它们将永远占据记忆。从数据大小来看,图像往往很大。

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

        2
  •  0
  •   troelskn    17 年前

    通常,PHP脚本不能泄漏内存。PHP运行时管理脚本的所有内存。脚本本身可能会泄漏内存,但当PHP进程结束时,这将被回收。由于PHP主要用于处理HTTP请求,并且这些请求通常运行很短的时间,因此如果您泄漏了一些正在进行的内存,这就不成问题。所以,只有当您将PHP用于非HTTP任务时,内存泄漏才应该真正关心您。性能对您来说应该比内存使用更重要。使用诸如 xdebug 来分析您的代码。

    推荐文章