Question

I am thinking of using a PHP framework called CodeIgniter.

One of the things I am interested in is its speed. I have, however, no way to find out how fast it is, and would rather not simply take the word of their website for it. Does anybody know how I can determine its speed myself, or can someone tell me of a site that can?

Was it helpful?

Solution

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

OTHER TIPS

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.

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.

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.

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.

Theo,

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

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.

You'll be pleased with Codeigniter. I have a couple sites with heavy loads and it performs very well for me.

I find codeigniter quite fast in comparison to other php framework.

Its even fast to learn.. ;-)

If you have MVC concept, it take just a couple of hours to get started....

You might want to read THIS THREAD in the CodeIgniter forums which compares speed on a full site first developed with CakePHP and then rewritten using CodeIgniter

I maintain a site that gets slammed a few times a year. Last year the development team rewrote the entire site using Codeigniter and we have had much luck in terms of performance. Additionally, the time it took to perform the rewrite was minimal as this framework is quite easy to work with. CakePHP in my opinion is also a good choice if you find that you don't like Codeigniter.

For CodeIgniter and other PHP frameworks, PHP Quick Profiler is very handy for benchmarking and measuring speed especially for database queries. You must check this out: php-quick-profiler

It's very easy to install and provides an awesome GUI for examine different benchmarking tests.

follow these steps to determine the speed of codeigniter

https://dzone.com/articles/5-things-you-should-check-now

and this to determine the performane and optimization

http://ericlbarnes.com/codeigniter-performance-optimizations/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top