Tuesday, September 2, 2008

We started something!!

It seems that our benchmarking example has pushed people to do their useful benchmarks. 
You can check this framework benchmarks page and try to guess what are they actually benchmarking. If you can find the point of that benchmark, please drop some comments here, because I want to sleep with ease tonight.

So I want to left here a just a few remarks about this kind of stuff:
  1. Stop benchmarking your just created framework against symfony, Zend Framework, Cake, or whatever.
  2. When are we going to realize that the point of a framework is not to run as fast as assembly code, but to improve developer productivity and save money in developer time?
  3. I'm not pissed off, I just can't get the point of those benchmarks.  
If you have more examples of this kind of useless benchmarks, please add them to the comments.

6 comments:

Xeno said...

The originl phpulse benchmarks actually showed some of the frameworks performing 5-10X slower than phpulse. Since the upgrade, they now all timeout. We haven't upgraded our benchmark page to a point that allows them to keep up without timing out.

alvaro said...

@xeno

Can you explain how did you perform those benchmarks. I mean, where the frameworks installed on the same machine, configuration details, etc. Thanks.

Xeno said...

Yep they were installed on the same machine. In fact you encouraged me to redo them so I downloaded them all over again, retested them on a test machine I have handy and got the benchmarks back up again. I used the default environments of each framework and a default install of Apache, MySQL and PHP (no additional tweaking).

And just to clarify, I did the benchmarks over three years ago just to check the speed of PHPulse and have been hosting a variation of them in one form or another on the site.

As most will point out, it's not a TRUE benchmark like a 'hello world' done in each language but then again, you can't really do a true benchmark as each one preloads things it's own default environment. So I figured it fairest to just compare default environments as any MAJOR differences in speed will show themselves... and they do.

Ian said...

I wouldn't call these benchmarks useless at all. What they show is how well the framework can handle a large number of requests.

If that is the requirement of your site then this is a good thing to know.

However, what I haven't yet seen anywhere is a benchmark on how long it takes to get an application written, tested and deployed using different frameworks. Quite how such a thing could be tested fairly I do not know. But for many small companies, this would be of greater import than the capacity of the framework to handle large numbers of requests.

After all, a large company is more likely to be able to afford to spend the time to remove the convenience of a framework like Symfony if they are anticipating traffic on the scale of something like slashdot.

Xeno said...

What you are asking is a very loaded question. It all depends on the application being built. Time taken all depends on the requirements of the functionallity being built.

But I suppose the most basic CRUD based database application with a form for editing, a form for adding and a deletion process takes about 1-4 hrs (depending on complexity) in PHPulse once you are familiar with the framework and IF you are performing all tasks (DBA and development).

In a shop where the roles are separate, even less time. I have been in meetings at 9am and been able to have completed working versions of the functionality by 10am.

I can't speak for other frameworks.

Xeno said...

Ian,

As for your comment of a larger company being able to AFFORD to replace a framework, usually they cannot. Price isn't the only cost, developer time, down time are also expnses and lost money due to current application being unable to meet demands as other developers attempt to rebuild applications in new framework.

I worked at Amazon from 95-97 and during that time we had a 200% growth rate every month. Not typical mind you but I have been with alot of companies that have had to swap out tools quickly and Amazon was one of them. Now with that kind of growth rate, could they afford to swap out a framework?? Given the limited resources and inability to train people and get them up to speed? If you said yes, I'd suggest reading 'The Myhtical Man Month' as industry leaders would say it's not possible.

The decision on a good scalable framework needs to be made early in the beginning. Toolkits and plugins can be added in but the framework itself needs to be able to scale as the company scales (just as the web server would).

If before you reach the apex of your groth, your framework cripples you causing your growth spurt to halt midstream, then you have made a poor choice in your framework.

This is why scaleability is of such a high concern to CEO's and CIO's when making a decision about frameworks.