ID: 44125
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Open
+Status: Feedback
Bug Type: XML related
Operating System: Windows Vista
PHP Version: 5.2.5
New Comment:
I was trying phpdoc out of HEAD. So you can reproduce the issue using
that specific version of configure.php against HEAD? I haven't yet been
able to reproduce.
DOM tree doesn't persist. I took your statement as you tried to load
right after performing xinclude.
using file:/// insures that the path is properly converted no matter
which style you use.
Previous Comments:
[2008-03-30 22:14:07] [EMAIL PROTECTED]
rrichards, are you running this off of the phpdoc HEAD? The slowdown
occurred with 1.36 of configure.php; later versions may have changed the
format of manual.xml. It might be a Vista only issue.
> Re-use the dom object causes the tree to be unloaded with [snip]
What I don't understand, however, is how the DOM tree could persist
across requests.
> In any case, it is best to use file:/// for windows
files
I have never heard of this before. Do you mean I should use
file:///C:\Users\Edward\... or file:///C:/Users/Edward/... ?
[2008-03-26 19:48:04] [EMAIL PROTECTED]
Does this only occur on Vista? Running on XP, I cannot reproduce the
issue. It runs just as quick using either notation. As for your "side-
effect" issue. Re-use the dom object causes the tree to be unloaded
with
the second load() call and takes a while due to the size.
In any case, it is best to use file:/// for windows files
as the paths do not conform well to uris. By using the file schema
(note
the 3 slashes), dom extension is able to know it is a file and
automatically performs the real path call.
[2008-02-15 00:29:49] [EMAIL PROTECTED]
P.S. There is a rather obvious (and effective) workaround for this:
realpath($file) before passing it to DOMDocument::load(). However, in
theory, such a call should not be necessary.
[2008-02-15 00:27:42] [EMAIL PROTECTED]
Description:
On Windows, XML files with large amounts of XIncludes (such as the PHP
Documentation Manual, where this bug was discovered) exhibit curious
behavior when they were loaded with Unix-style paths: they appear to
require double the memory than if they were loaded with Windows-style
paths.
Reproduce code:
---
load($file);
echo "Performing XIncludes\n";
$dom->xinclude();
Expected result:
With an external process manager (Task Manager or Process Explorer),
memory usage should spike on $dom->load(), and then stay constant during
XIncludes. XIncludes should be very quick.
Actual result:
--
XIncludes take a long time to run, and double the memory usage of
php.exe.
A curious side-effect of this is that call to $dom->load() immediately
after the offending XInclude is extremely slow. This can be from a
completely separate process.
--
Edit this bug report at http://bugs.php.net/?id=44125&edit=1