ID:               27215
 Comment by:       hagen at xiag dot ch
 Reported By:      waboring at 3gstech dot com
 Status:           Open
 Bug Type:         Performance problem
 Operating System: Redhat 9
 PHP Version:      5CVS-2004-02-10 (dev)
 New Comment:

The same thing on PHP5/Windows XP SP1.
I think there's nothing to add to the things said above.
PHP5 simply parses code too slow.

The bug is extremely easy to reproduce – I’ve tried with different
configurations and on different Apache/platform combinations – but it
still there.

You take any class put it to separate file then include it from another
one and measure the time taken by include. The difference between php4
and php5 is up to 15-20 times.


Previous Comments:
------------------------------------------------------------------------

[2004-03-23 17:44:26] waboring at 3gstech dot com

Some more data points.  I used apache bench to run the test.php script
in my last post.  I tested against php 4.3.2 and today's cvs php5. 
Here are the results.

php4:
Server Software:        Apache/1.3.26
Server Hostname:        phphtmllib.hemna.corp.qualys.com
Server Port:            80

Document Path:          /test.php
Document Length:        34 bytes

Concurrency Level:      1
Time taken for tests:   9.748 seconds
Complete requests:      100
Failed requests:        0
Broken pipe errors:     0
Total transferred:      22900 bytes
HTML transferred:       3400 bytes
Requests per second:    10.26 [#/sec] (mean)
Time per request:       97.48 [ms] (mean)


php5:
Server Software:        Apache/1.3.26
Server Hostname:        phphtmllib.hemna.corp.qualys.com
Server Port:            80

Document Path:          /test.php
Document Length:        34 bytes

Concurrency Level:      1
Time taken for tests:   39.551 seconds
Complete requests:      100
Failed requests:        0
Broken pipe errors:     0
Total transferred:      24300 bytes
HTML transferred:       3400 bytes
Requests per second:    2.53 [#/sec] (mean)
Time per request:       395.51 [ms] (mean)

------------------------------------------------------------------------

[2004-03-23 17:06:45] waboring at 3gstech dot com

ok with further testing, I have trimmed my configure line down to the
following.

./configure \
-with-apxs=/usr/local/apache/bin/apxs

I then restart apache.
First hit to the test script .097 s
Second hit .187 s
third .264 s
.332 s
.346 s
.392 s  (peaked out here)

In each test, I wait a few seconds to make sure there is no load on the
machine.  I'm using a seperate machine to run the browser as to not
polute the server response times.

The entire php script.

<?php
$_time = explode(" ",microtime());
$start = $_time[1] + $_time[0];

$phphtmllib = "phphtmllib";
include_once( $phphtmllib."/includes.inc");

$_time = explode(" ", microtime());
$stop = $_time[1] + $_time[0];
$elapsed = substr($stop - $start, 0, 5);
echo "<i>elapsed time: ".$elapsed." s </i><br>\n";
?>

------------------------------------------------------------------------

[2004-02-11 15:05:48] [EMAIL PROTECTED]

I have not noticed any performance problem with PHP 5, quite the
opposite actually. Please provide information how you have configured
PHP (what web server is used, are you running PHP5 as CGI or as a
module, what configure line was used when compiling PHP, what possible
extensions you load in php.ini if any, etc.) 

(isn't all this mentioned in the instructions about HOW to report???)


------------------------------------------------------------------------

[2004-02-11 14:00:22] waboring at 3gstech dot com

I'm not sure what else you want me to provide.  The bug is very clear. 
There is a big performance issue with php5 just including a file with a
class in it. php4 does not show this problem.


I have created a directory on my web server that shows the test code.
http://phphtmllib.newsblob.com/bug/index.php

This is running in an php4 environment and it takes 0.005s to execute
the index.php code.

I don't have php5 running on this machine, as it is a production box.

You can look at the source code of the scripts by pointing to the
following files.
http://phphtmllib.newsblob.com/bug/index.phps
http://phphtmllib.newsblob.com/bug/includes.phps
http://phphtmllib.newsblob.com/bug/ContainerClass.phps 
http://phphtmllib.newsblob.com/bug/XMLTagClass.phps
http://phphtmllib.newsblob.com/bug/HTMLTagClass.phps

When I run this on my machine (Pentium 4 1.8Ghz 512M ram)
php4: 0.005s
php5: 0.100s

------------------------------------------------------------------------

[2004-02-10 20:19:37] waboring at 3gstech dot com

Description:
------------
I am the maintainer of phphtmllib.  I just got the latest php5 from cvs
built and working, but have noticed a serious performance issue with
just doing includes.

reproduce:
download phphtmllib from 
http://phphtmllib.newsblob.com/downloads/download.php?version=2.4.0
tar -zxvf phptmllib-2.4.0.tgz  into your favorite location

create a simple script that does nothing but include the library
include file. "phphtmllib-2.4.0/include.inc" 

The execution of which takes over 1 second to complete.  

This script takes 0.075 to complete in php 4.3.2





Reproduce code:
---------------
<?php
$phphtmllib = "/location/where/you/installed/it";
include_once($phphtmlib."/includes.inc");
//Those 2 lines take over 1 second
?>

Expected result:
----------------
expected the simple include script to return in under .1 ms

Actual result:
--------------
The script took over 1 second to execute.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=27215&edit=1

Reply via email to