代码之家  ›  专栏  ›  技术社区  ›  dropson

PHP可能内存泄漏

  •  0
  • dropson  · 技术社区  · 16 年前

    我有一个脚本,它在数据库中循环使用gd&imagick转换图像。

    我取消设置或替换每个循环之间的所有变量和对象。

    对于每个循环,get-memory-usage(1)显示该脚本使用的并发内存量。应该是。

    但是,当我运行“top”时,%mem列报告这个脚本(相同的pid)每个循环以几个百分比递增。

    当我处理完所有图像后,我会销毁它们,当我运行get-defined_vars()时,只会设置标准全局变量和一些变量。

    为什么“top%”内存使用率与PHP报告的不同?

    经过10次循环后,PHP对系统内存有20%的感知。

    我在Debian5上运行php 5.2.6

    2 回复  |  直到 16 年前
        1
  •  1
  •   soulmerge    16 年前

    是否将第一个参数传递给 memory_get_usage() ?如果不是,你应该先试试。要了解更多信息,我们需要您的源代码。

        2
  •  0
  •   dropson    16 年前

    我得自己回答这个问题。

    升级到php 5.3.2消除了Garabage以如此大的比率堆积的问题。

    因为存在一些我无法识别的漏洞,并且根据gd映像资源的填充情况重新设置了这些漏洞,不管我做什么,我决定让一个perl脚本运行while循环,并执行php脚本。

    system("php /opt/cron/tasks.php");
    

    这样,php总是清空缓冲区/内存。