From:             
Operating system: Linux CentOS 5.5 x86_64
PHP version:      5.3.5
Package:          SimpleXML related
Bug Type:         Bug
Bug description:Impossible to freed memory complety after call to Xpath() 
method.

Description:
------------
---

>From manual page: http://www.php.net/simplexmlelement.xpath

---



Test script:
---------------
<?php

$sxe = NULL; $nodes = NULL;

print("Without call to xpath method : " . PHP_EOL);

print("Memory before SXE  : " . memory_get_usage() . PHP_EOL);

$sxe = new SimpleXMLElement("large_file.xml", 0, TRUE);

$sxe = NULL; $nodes = NULL;

print("Memory after freed memory : " . memory_get_usage() . PHP_EOL .
PHP_EOL);



$sxe = NULL; $nodes = NULL;

print("Calling xpath method : " . PHP_EOL);

print("Memory before SXE  : " . memory_get_usage() . PHP_EOL);

$sxe = new SimpleXMLElement("large_file.xml", 0, TRUE);

$nodes = $sxe->xpath('/ITEMS/ITEM');

$sxe = NULL; $nodes = NULL;

print("Memory after freed memory : " . memory_get_usage() . PHP_EOL .
PHP_EOL);



// short sleep, time to launch 'ps aux'

sleep(10);

?>



Expected result:
----------------
When I unset (or set to NULL) the result of the Xpath() method ($nodes in
the example), I expect memory will be completly freed. It's not the case. 



I tried, to recursively unset each element from $nodes and I got the same
result. 





Actual result:
--------------
Result of the test script :



Without call to xpath method : 

Memory before SXE  : 625736

Memory after freed memory : 625904



Calling xpath method : 

Memory before SXE  : 625904

Memory after freed memory : 1608944





memory_get_usage says that few kilos octets of memory are still used, but
in reality several thousand mega octets are still used.



# ps aux | grep test.php



me  28859 83.4 48.3 *1119908* *996056* pts/3  S+   15:30   0:08 /bin/php
test.php

-- 
Edit bug report at http://bugs.php.net/bug.php?id=54120&edit=1
-- 
Try a snapshot (PHP 5.2):            
http://bugs.php.net/fix.php?id=54120&r=trysnapshot52
Try a snapshot (PHP 5.3):            
http://bugs.php.net/fix.php?id=54120&r=trysnapshot53
Try a snapshot (trunk):              
http://bugs.php.net/fix.php?id=54120&r=trysnapshottrunk
Fixed in SVN:                        
http://bugs.php.net/fix.php?id=54120&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=54120&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=54120&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=54120&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=54120&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=54120&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=54120&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=54120&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=54120&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=54120&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=54120&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=54120&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=54120&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=54120&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=54120&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=54120&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=54120&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=54120&r=mysqlcfg

Reply via email to