Zend Framework vs Symfony vs Django

I have been developing PHP websites for the past 6 years. Recently I began laying the plans for a niche social networking site. I am also taking a Python class and so I decided to try out Django. I love the way Django is set up, but it is definitely a whole new beast from a standard PHP website thus it’s a little confusing at first (although I am learning it very quickly). I plan on either using Django, Zend, or Symfony for my website, but I have no idea how to decide which one to use. This site needs to be able to support a couple hundred thousand users. I know all the tests show Django being faster, but will there be any real world difference? If you have experience with either one of the frameworks, I would love to hear what you think about using it on such a large website?

How many users you have in your database is not relevant to your choice of language. That might guide your data design and choice of database system. What generates load on a front end web server is concurrent users – requests per second.

There probably won’t be any difference any way you go, though I don’t know much about the full stack for running Python web apps. The first bottleneck you run into running a web app on large data sets is always disk IO – once your database is too large to fit into memory – and that is orders of magnitude slower than the time it takes to execute your language code. I run several significant sites on Symfony that handle hundreds of requests per second.

Here are some performance comparisons among PHP frameworks:

http://symfony-reloaded.org/fast

Ignore the Symfony 2.0 parts because that isn’t production-ready yet, but Symfony 1.4 is in the tables too.

Some opcode caching system, like APC, would make results less different I believe, and make “speed” factor even more insignificant.

Those are results with APC.

To make the benchmark reproducible by anyone, we have used an Amazon EC2 machine to conduct the benchmark (ami-80446ff4, c1.xlarge) …[server specs]…

The benchmarks were done with PHP 5.3.1 (with the Suhosin patch) and APC 3.1.3p1 (no file stat). You can download the code here: http://github.com/fabpot/framework-benchs.

Ah, I am blind.

i doubt any framework makes the things faster by itself…

but i can say that symfony is complicated and needs to be simplified…

why no cakephp there?

CakePHP is there. It’s the second slowest of the 8 frameworks.

Symfony is really not complicated. It’s simplified to the point that its components can be used separately outside of the framework:

http://components.symfony-project.org/

Symfony powers Yahoo! Answers, Yahoo! Bookmarks and Delicious.com.

yes,but i think i should never forget now a days framework is not only used for large website.So,slowness of these framework is really only felt in large websites.
Otherwise i have found most of the time it is not that slow for normal site.

i think complexcity and power are normally two ends of sea-saw.In the name of making things more powerful many convention are squeezed into framework which makes it complicated(offcourse relatively)

i praticed both cakephp and symfony,i felt symfony is more complicated than cake and many agree with the same

thanks

Do not take this “slowness” too literally.
It is relative slowness, not absolute. And it’s artificial applications were tested, not real ones.

220 requests/second hitting the APC cache on this real web server of mine, it serves a Symfony application:

http://krypton.awio.com/apc.php

The speed of the framework is generally irrelevant for everyone but Google, Yahoo!, Microsoft and Facebook. For us, the time it takes to communicate with the database will limit the front end web servers before framework execution time can become relevant.

@802 - I wouldn’t recommend basing your decision on performance characteristics. All of the mentioned frameworks are mature and stable enough. You can easily build large scale applications in either of them. What’s more important is whether their architecture supports your applications requirements, and which language you’re more familiar with.