[PHP-DEV] EmbPerl, PHP continued... (fwd) From: Rasmus Lerdorf (rasmus <email protected>)
Date: 11/23/99

Interesting performance comparison here. PHP 3 did ok. Strange how the
aolserver numbers are all over the map.

-Rasmus

---------- Forwarded message ----------
Date: Wed, 24 Nov 1999 00:25:35 +0800
From: Robert Locke <rlocke <email protected>>
To: modperl <email protected>
Subject: EmbPerl, PHP continued...

Hi all,

I was looking for some performance data for EmbPerl, PHP, etc. but
could only find "Hello World"-type tests. So, I decided to add a few
other tests to the mix and post the results.

These test results are still very crude.

Any feedback/analysis/criticism would be appreciated.

Thanks!

Rob

MACHINE:
    Dual Pentium III 500 MHz
    256 MB RAM
    RedHat 6.0 (Linux 2.2.5-15smp)

DATABASE SERVER:
    Postgres 6.5.2

WEB SERVERS:
    Apache w/ mod_perl, EmbPerl (using Apache::DBI)
        - Apache/1.3.9 (Unix) mod_perl/1.21

    Apache w/ mod_php (using persistent DB connection call)
        - Apache/1.3.9 (Unix) PHP/3.0.12

    AOLServer 2.3.3 (supports persistent DB connection)
        - NaviServer/2.0 AOLserver/2.3.3
        - threw this one in just for kicks

RELEVANT APACHE SERVER SETTINGS:
    MinSpareServers 20
    MaxSpareServers 35
    StartServers 20
    MaxClients 150
    MaxRequestsPerChild 0
    PerlSetEnv EMBPERL_OPTIONS 8082
    PerlSetEnv EMBPERL_ESCMODE 0
    PerlSetEnv EMBPERL_DEBUG 0

TESTS:
    Test 1 - Static HTML
    Test 1(b) - Static HTML with special extension
    Test 2 - Hello World
    Test 3 - Big Print
    Test 4 - Small Database Query
    Test 5 - Big Database Query

    Test 1: Static HTML
    - This is a 6K HTML file called "test1.html".
    - No embedded code here.

    Test 1(b): Static HTML with extension
    - Identical to the static HTML file in every way
    *except* that extension is changed to ".epl",
    ".php3", or ".adp" according to web server.
    - No embedded code here.

    Test 2: Hello World
    - Simple test to print "Hello World".
    - For each of EmbPerl, PHP, AOLServer:
        [+ "Hello World" +]
        <? echo "Hello World" ?>
        <% ns_puts "Hello World" %>

    Test 3: Big Print
    - 1000 iterations of incrementally printing "a":
        a
        aa
        aaa
        aaaa
        aaaaa
        aaaaaa
        ...

    - As an example: here's the EmbPerl code:
        [-
            for($i=0;$i < 1000;++$i) {
                $a = $a . "a";
                print OUT $a, "<br>";
            }
        -]

    - Returned page was approximately 500 K.

    Test 4: Small Database Query
    - Fetch and display 1 record from a products database of about 300
      records, searching for an exact match on an indexed field.
    - Returned page was approximately 5K.
    - Used persistent db connection in all cases.

    Test 5: Big Database Query
    - Fetch and display 24 records from a product database of about
      300 records, using a "like" search on a text field.
    - Returned page was approximately 118K.
    - Used persistent db connection in all cases.

RESULTS:

    - Results are "Requests per second". I'm not sure how to
      interpret the numbers on an absolute scale, but the relative
      comparisons should be somewhat meaningful.

    - Each test was conducted 5 times and the average is shown.

    - "ab" was used from the same machine as the web servers because
      something "strange" happened when I ran it on another machine.
      (I'll send a separate email regarding this.)

                     1000 requests, 1 concurrent
                        ab -n 1000 -c 1 <URL>
                        ----------------------
              Test1 Test1(b) Test2 Test3 Test4 Test5
-----------------------------------------------------------------------
Apache w/
modperl/ 852.86 99.53 217.25 16.96 78.12 18.32
EmbPerl
          
Apache w/ 836.47 100.06 560.78 16.15 98.76 18.80
PHP

AOLServer 100.01 99.72 100.06 12.89 156.30 14.29

          

                     1000 requests, 10 concurrent
                        ab -n 1000 -c 10 <URL>
                        ----------------------

              Test1 Test1(b) Test2 Test3 Test4 Test5
------------------------------------------------------------------------
Apache w/
modperl/ 890.37 248.00 262.47 30.31 158.50 45.17
EmbPerl

Apache w/ 957.30 492.55 559.71 23.81 268.34 34.64
PHP

AOLServer 758.54 227.76 816.65 5.97 141.19 7.45

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>