views:

1346

answers:

8

I am thinking of using a PHP framework called Code Igniter. One of the things I am interested in about it is that it's fast, I have however no way to find out how fast and would rather not simply take the word of their website for it. Does anybody know how I can determine it's speed or tell me of a site that can?

Thank you.

+1  A: 

i'd recommend testing it for yourself. use xdebug's profiler to create a cachegrind compatible file and webgrind to visualize the file.

that way you end up with very reliable information.

Pierre Spring
+7  A: 

Code Igniter also has some built-in benchmarking tools: http://codeigniter.com/user_guide/general/profiling.html

Bob Somers
+2  A: 

If your site is database-driven I would be very surprised if your bottleneck would be the application framework. "Fast" as in faster development is what I would worry about rather than "fast" as in speedy handling of requests. Significant optimization is better done by caching strategies and optimizing your database access.

Besides database access your own code will be where most of the time for each request is spent (and even that is usually not significant compared to database access), the framework will likely not be affecting the time spent on a request, unless it is really badly written.

It way be better to look for a framework which has good caching support (which Code Igniter may have, I don't know), that will almost always save you more time than the few milliseconds you could shave off the request handling by using a slightly faster framework.

Have a look at the Zend Framework too, it has the benefit of being PHP 5, whereas Code Igniter is still PHP 4, as I understand it. That may be an issue when it comes to speed, but in favor of which framework I don't know. Zend has good caching support and a database profiler that can help you find where your bottlenecks are.

Theo
+5  A: 

Yes, the problem is you have to build your application to profile it.

At work we had a couple of projects written outside which we load-tested before putting them on our main boxes. We were quite surprised to find critical performance problems with both; one was written in CakePHP and the other was written using Drupal. I don't think this highlights a problem with any framework or CMS other than the need to do profiling and load-testing on any site which is going to get significant traffic. In both cases it was what the developer had done, rather than the characteristics of the software platform, that caused the problem. For example, there was a recursive function call the developer had created in the Cake project which instantiated the entire Cake object every recursion and this would have taken out the server had it gone live under load.

In my opinion performance should not be a deciding factor in choosing a framework; the objective differences are likely to be marginal and the way you use it is likely to cause far more performance problems than the inherent performance of the framework.

I believe that to scale any PHP application to run under load, you will need an opcode cache and you'll need to write in intelligent content caching using something like memcached or whatever built-in caching your framework supports.

Flubba
+4  A: 

Here's a fairly thorough framework comparison that may be helpful.

Sirbastian
A: 

Theo,

Yes Code Igniter offers caching. No idea how effective, but it's available.

A: 

Paul M. Jones recently updated his framework benchmarks. He's comparing the performance of a Hello World application in a few popular PHP frameworks.

These are interesting, but keep in mind that doesn't tell much about a real world application.

bertbalcaen
A: 

CodeIgniter is plenty fast for most projects. Some have posted here and if you Google, you will find that it compares favorably to other frameworks with respect to speed.

I would agree with another poster that performance is usually not a big concern when it comes to framework choice. The major frameworks all have sufficient performance for most projects.

pbreitenbach