Edit report at https://bugs.php.net/bug.php?id=62468&edit=1
ID: 62468 Comment by: Sjon at hortensius dot net Reported by: zerkyn at gmail dot com Summary: SimpleXML memory leak, if circular references are removed by Garbage Collector Status: Open Type: Bug Package: SimpleXML related Operating System: Windows 7, Linux PHP Version: 5.3.14 Block user comment: N Private report: N New Comment: I can confirm this, but it has already been fixed in PHP 5.4. I assume this is because of the circular references that were fixed then. http://3v4l.org/JICRi Previous Comments: ------------------------------------------------------------------------ [2012-07-02 20:13:45] zerkyn at gmail dot com Description: ------------ The SimpleXMLElement memory leaks, when: 1) An object holds reference to a SimpleXMLElement, and 2) The object is involved in a circular references net, and 3) All external references to that net are cleared, so Garbage Collector finds that net, correctly sees it as a garbage cycle, and cleans all its objects After the Garbage Collector finishes its work, the memory, consumed by SimpleXMLElement is not freed, thus producing a memory leak. The issue is reproduced both at Windows and Linux platforms. Full version for the test script is there: https://dl.dropbox.com/u/17950262/php/issues/simplexml_memory_leak.zip Test script: --------------- <?php class SelfLinked { public $xml; public $me; public function __construct() { $this->xml = simplexml_load_file('pretty_big_file_of_1mb_size.xml'); $this->me = $this; } } echo "Sys memory usage before: ", SystemMemoryUsage(), "\n"; for ($i = 0; $i < 1000; $i++) { $a = new SelfLinked(); unset($a); gc_collect_cycles(); } echo "Sys memory usage after: ", SystemMemoryUsage(), "\n"; /** ----------------------------------------------------- */ function SystemMemoryUsage() { ... // Return memory consumption by executing system tool - tasklist, ps or anything else // See https://bugs.php.net/bug.php?id=62467 on proper memory profiling of SimpleXML functions } } Expected result: ---------------- Memory consumption does not change. Actual result: -------------- Huge increase of memory consumption is reported. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=62468&edit=1