PMJ publishes some benchmarks

This article is also available in the following languages:
By gwoo
Anytime new information comes out about CakePHP, we do our best to respond and share our knowledge for the betterment of the community. Recently some new benchmarks were created to help guide us on our way. Thanks to Paul M. Jones for the effort to put them together.
Hello loyal bakers,

Yesterday, Paul M. Jones published some interesting benchmarks using apache ab to test the performance of a simple hello word echo statement in several of the most recent frameworks [1]. Paul explains how the test was run and compares relative speed. Paul is very respectful of each framework and published the benchmarks as a guide more than anything else. As it turns out we have some more work to do. This is a great opportunity for us to work with Paul to speed up the dispatcher to achieve some better results in his scenario.

As most of you know and Paul admits, CakePHP is not just about simple hello world examples. CakePHP is mainly concerned with data-driven rapid development. We feel Cake is a strong performer as the application is fully realized partly because of some of the things done in the dispatcher, partly because we think our model layer is pretty quick. What we do not want to do is fine tune CakePHP for one specific benchmark scenario. We need to look at the application development as a whole and try to get the fastest, most secure framework possible. As is often said, development and maintenance costs are much higher than hardware costs. We plan to stay focused on making development faster, but it can't hurt to speed up the processing at the same time. We also want to provide more tools to compliment the full page caching, persistent models, and other things used to optimize applications.

We will continue to work with Paul on improving Cake's speed in his scnario and we also want to produce some benchmarks of a more complete application. We remain focused on the three things we believe make frameworks great...security, speed, and simplicity. We are confident that with a little more work, CakePHP will come out on top. As always, if you would like to help out, feel free to send an email or talk to one of us on IRC.

Bake on.

[1] http://paul-m-jones.com/blog/?p=236

Comments

  • Posted 12/17/06 05:43:00 PM
    hello world should not be used for benchmarking a framework. We woulnd't need a framework if all we wanted is a simple hello world. Maybe some benchmarks with real apps, that would be something i'd like to see.

    But for me "fast application development" its what matters the most.

    I couldn't agree more with gwoo.

    Hardware is getting cheaper as we speak so, a few req/s its not really a bad thing as long as we get the whole thing done faster and with all the features we want.
  • Posted 11/26/06 05:44:27 AM
    I still feel Cake offers enough of a speed improvement in development too make this less of a problem. However it would be great if this post sparked a bit of an optimizing effort. The Database connection-less case that Paul has chosen does make a nice target for optimization since it is very easy to test without worrying too much about external factors like incorrect server configuration issues, slow databases, etc. We should at least be able to kill Zend right? :)
  • Posted 11/22/06 03:21:00 AM
    If I write a simple php page with that query, I get 60 Req/sec.
  • Posted 11/22/06 03:16:05 AM
    Hi Gwoo,

    After reading your article and then going to the PMJ's article, I benchmarked my application and unbelievably on my local computer I am getting only 4 Requests per second.

    E:\www\Apache2\bin>ab -c 10 -t 4 http://localhost/cake/index.php/profiles/home
    This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
    Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
    Benchmarking localhost (be patient)
    Finished 17 requests


    Server Software: Apache/2.0.52
    Server Hostname: localhost
    Server Port: 80

    Document Path: /cake/index.php/profiles/home
    Document Length: 10530 bytes

    Concurrency Level: 10
    Time taken for tests: 4.203179 seconds
    Complete requests: 17
    Failed requests: 16
    (Connect: 0, Length: 16, Exceptions: 0)
    Write errors: 0
    Total transferred: 182469 bytes
    HTML transferred: 174837 bytes
    Requests per second: 4.04 [#/sec] (mean)
    Time per request: 2472.458 [ms] (mean)
    Time per request: 247.246 [ms] (mean, across all concurrent requests)
    Transfer rate: 42.35 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 7 7.7 7 15
    Processing: 468 1712 547.9 1883 2421
    Waiting: 437 1656 539.7 1843 2359
    Total: 468 1719 547.3 1890 2421

    Percentage of the requests served within a certain time (ms)
    50% 1828
    66% 2015
    75% 2015
    80% 2015
    90% 2390
    95% 2421
    98% 2421
    99% 2421
    100% 2421 (longest request)

    E:\www\Apache2\bin>
    Where should I even start debugging this now?
    This page has only 1 DB connection.

    -Mandy.

Comments are closed for articles over a year old