Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I determine CodeIgniter speed?

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?

like image 994
Teifion Avatar asked Aug 16 '08 19:08

Teifion


People also ask

How fast is CodeIgniter?

CodeIgniter – Performance & speed comparison CodeIgniter-based applications are run through a functional test to determine the performance. Few projects have also demonstrated various response times based on the number of users. For example, the average response time to run the application with 100 users was 11.5 sec.

What is benchmark in CodeIgniter?

CodeIgniter has a Benchmarking class that is always active, enabling the time difference between any two marked points to be calculated. Note. This class is initialized automatically by the system so there is no need to do it manually.


4 Answers

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

like image 117
Bob Somers Avatar answered Sep 21 '22 11:09

Bob Somers


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.

like image 44
Polsonby Avatar answered Sep 22 '22 11:09

Polsonby


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.

like image 28
Theo Avatar answered Sep 21 '22 11:09

Theo


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.

like image 30
Pierre Spring Avatar answered Sep 22 '22 11:09

Pierre Spring