Is it possible to make a enterprise website using PHP still?
I'm talking millions of requests a week, is there a way to scale PHP to handle this?
The reason I ask is because I have a co-worker that told me Foursquare had changed from PHP to Vala because PHP was too slow.
Ideas?
8 comments
[ 0.17 ms ] story [ 31.2 ms ] threadhttp://blog.facebook.com/blog.php?post=2356432130
From the linked article:
HipHop programmatically transforms your PHP source code into highly optimized C++ and then uses g++ to compile it. HipHop executes the source code in a semantically equivalent manner and sacrifices some rarely used features such as eval() in exchange for improved performance. HipHop includes a code transformer, a reimplementation of PHP's runtime system, and a rewrite of many common PHP Extensions to take advantage of these performance optimizations.
Once you have tens of thousands of hits a week presumably you can port to HipHop yourself ( http://github.com/facebook/hiphop-php ). Needing to scale is a great problem to have.
What about the projects that use PHP extensions in the .ini to speed things up (such as http://pecl.php.net/package/APC)
So 1week=7days=168hours=10080minutes=604800seconds
For 1 million requests/week= 1.65Req/sec
For 5 million requests/week= 8.26Req/sec
For 10 million requests/week= 16.53Req/sec
For this kind of traffic there's nothing to worry about. I'm not an expert so someone with more experience can say if this numbers are ok.
Remember to cache, load balance and minimize disk i/o and you already have a good head start.
On a side note, Foursquare is using Scala with the Lift framework, not Vala. And from what I understand, Harry wasn't the original developer when it came to the PHP version of Foursquare (and if I understand correctly, the original developer wasn't even an engineer). When the time came to move on to something bigger and better, Harry rewrote it using Scala because of various personal preferences (Java background, preference to compiled and typed code, etc). So the decision to move from PHP because of performance issues may be more related to poor quality of code (as stated in this slide deck: https://docs.google.com/present/view?id=dcbpz3ck_25czcns2c2&...) than the actual platform.