【问题标题】:Does this cause a PHP memory leak?这会导致 PHP 内存泄漏吗?
【发布时间】:2011-10-06 11:13:19
【问题描述】:

这会导致 PHP 内存泄漏吗?

function xml_parse($xmlString)
{
    return json_decode(json_encode(new SimpleXMLElement($xmlString)), true);
}

或者我需要像这样取消设置 SimpleXML obj 吗?

function xml_parse($xmlString)
{
    $sObj = new SimpleXMLElement($xmlString);
    $ret  = json_decode(json_encode($sObj), true);
    unset($sObj);
    return $ret;
}

我在一个大型 foreach 中运行它,因为脚本需要解析大量文件。

【问题讨论】:

标签: php


【解决方案1】:

如果你真的想知道,运行它几千次并输出内存使用情况。通常,垃圾收集器会清理未使用的对象,因此第一个 sn-p 不会“泄漏”内存。但是,在 PHP

【讨论】:

  • 我进行了 2 次测试运行,第一种方法我得到了大约 400Mb,而第二种方法我得到了大约 270Mb。在 PHP5.3.6 (MAMP) 上
【解决方案2】:

我不是超级 PHP 大师,但为了安全起见,我可能会选择您那里的第二个示例。

【讨论】:

    【解决方案3】:

    它不会导致内存泄漏。 PHP 的垃圾收集器将看到没有对 SimpleXMLElement 的引用,并根据需要将其删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      相关资源
      最近更新 更多