From: zerkyn at gmail dot com
Operating system: Windows, Linux
PHP version: 5.3.14
Package: SimpleXML related
Bug Type: Bug
Bug description:SimpleXML memory usage is not reported by memory_get_usage()
Description:
------------
When using SimpleXML functions to load XML data, the memory consumption is
not tracked internally by PHP.
Calling the "memory_get_usage()", you can see only a light memory
consumption increase, which is clearly not an appropriate value for the
document loaded (it is easily seen on a big documents, e.g. 1Mb+). However,
the proper memory increase is observed by using system tools ('tasklist /FI
"PID eq ..."' under Windows, 'ps' under Linux).
The issue affects profiling scripts, which are not able to fulfill their
role. And it affects 'memory_limit' setting, which doesn't control
application memory, consumed by SimpleXML.
Test script:
---------------
<?php
echo "Memory usage before: ", memory_get_usage(), "\n";
echo "Sys memory usage before: ", SystemMemoryUsage(), "\n";
$xml = simplexml_load_file('pretty_big_file_of_1mb_size.xml');
echo "Memory usage after: ", memory_get_usage(), "\n";
echo "Sys memory usage after: ", SystemMemoryUsage(), "\n";
/** -------------------------------------- */
function SystemMemoryUsage()
{
... // Return memory consumption by executing system tool - tasklist, ps or
anything else
}
Expected result:
----------------
"Memory usage after" and "Sys memory usage after" show, that memory
consumption was increased by approximately same values.
Actual result:
--------------
"Memory usage after" shows light memory consumption increase, while "Sys
memory usage after" shows much bigger value.
--
Edit bug report at https://bugs.php.net/bug.php?id=62467&edit=1
--
Try a snapshot (PHP 5.4):
https://bugs.php.net/fix.php?id=62467&r=trysnapshot54
Try a snapshot (PHP 5.3):
https://bugs.php.net/fix.php?id=62467&r=trysnapshot53
Try a snapshot (trunk):
https://bugs.php.net/fix.php?id=62467&r=trysnapshottrunk
Fixed in SVN:
https://bugs.php.net/fix.php?id=62467&r=fixed
Fixed in SVN and need be documented:
https://bugs.php.net/fix.php?id=62467&r=needdocs
Fixed in release:
https://bugs.php.net/fix.php?id=62467&r=alreadyfixed
Need backtrace:
https://bugs.php.net/fix.php?id=62467&r=needtrace
Need Reproduce Script:
https://bugs.php.net/fix.php?id=62467&r=needscript
Try newer version:
https://bugs.php.net/fix.php?id=62467&r=oldversion
Not developer issue:
https://bugs.php.net/fix.php?id=62467&r=support
Expected behavior:
https://bugs.php.net/fix.php?id=62467&r=notwrong
Not enough info:
https://bugs.php.net/fix.php?id=62467&r=notenoughinfo
Submitted twice:
https://bugs.php.net/fix.php?id=62467&r=submittedtwice
register_globals:
https://bugs.php.net/fix.php?id=62467&r=globals
PHP 4 support discontinued:
https://bugs.php.net/fix.php?id=62467&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=62467&r=dst
IIS Stability:
https://bugs.php.net/fix.php?id=62467&r=isapi
Install GNU Sed:
https://bugs.php.net/fix.php?id=62467&r=gnused
Floating point limitations:
https://bugs.php.net/fix.php?id=62467&r=float
No Zend Extensions:
https://bugs.php.net/fix.php?id=62467&r=nozend
MySQL Configuration Error:
https://bugs.php.net/fix.php?id=62467&r=mysqlcfg