Does anyone else think this is a tremendous waste of time for Facebook? I mean, obviously PHP powers a lot of stuff at Facebook, I'm sure there are zillions of lines of code they can't just replace today, and now they're forced to make it scale. I don't mean to be negative -- building faster, better systems is inspiring, and the stuff they are doing with PHP is pretty neat, and there are really smart people trying to figure this stuff out. But, you have to ask, why are they still using PHP?? Why not use some of the new stuff that's out there now or heck, why not go with the JVM instead of reinventing the wheel here?<p>No I'm genuinely asking. Isn't some of the stuff here already being done by other languages, or is Facebook really breaking new ground here? (yes lbrandy I saw your earlier comment)
By the way, there is an alternative to HipHop that is actually easier to implement because it makes php extensions.<p>It's called PHC <a href="http://phpcompiler.org" rel="nofollow">http://phpcompiler.org</a> and it's open source.<p>It was Paul Biggar's PhD thesis <a href="http://blog.paulbiggar.com/archive/a-rant-about-php-compilers-in-general-and-hiphop-in-particular/" rel="nofollow">http://blog.paulbiggar.com/archive/a-rant-about-php-compiler...</a><p>It just needs some community contributions to catch up.
This is curious. Their trace-based approach looks like Mozilla's Tracemonkey - even using the same terminology like side-exits. Mozilla discontinued Tracemonkey because it was really good for deep loops and not much else. They moved to JaegerMonkey, which is a method-compiled VM like v8 (at the time), and are now moving to IonMonkey, which is a best-of-all-worlds version.<p>So I'd love to hear why using a circa-2009 technology was the right one? Is PHP sufficiently different from Javascript for this to make sense (as someone who has worked on VMs for both, I think there's a good chance of that)? Why not use a method-compiler instead? Very interested in the answers and comparison to other JITs out there, if any HHVM people are here.
Amazed at all the 'engineer X policy or feature request slackers'. Can't say I'm the biggest fan of Facebook as a service but what their engineers are doing in terms of pushing the state of the art is fantastic.<p>Out of curiosity if there's anyone involved in Facebook on HipHop, has there ever been a discussion about just shifting from PHP to a more performant language, or is a case of still reaping the benefits of PHP in terms of dropping a developer in and not worrying about skill sets?
I'm curious if they were still evolving HPHPc at the same time as they were evolving HHVM: the chart shows HPHPc as having flat performance over time, while HHVM was getting better over a 7-month period. Could HPHPc have achieved the same performance gains if the same effort was expended?
Things make sense now. I remember a while back Facebook invested in an experiment with PHP on PyPy. They didn't pursue it, even though it produced impressive results. It seems their own in-house JIT has better performance?
For those who want to get their hands dirty:<p>CentOS 6.3 x64: <a href="https://github.com/facebook/hiphop-php/wiki/Building-and-installing-HHVM-on-CentOS-6.3" rel="nofollow">https://github.com/facebook/hiphop-php/wiki/Building-and-ins...</a><p>Ubuntu 12.04 x64: <a href="https://github.com/facebook/hiphop-php/wiki/Building-and-installing-HHVM-on-Ubuntu-12.04" rel="nofollow">https://github.com/facebook/hiphop-php/wiki/Building-and-ins...</a>
First off thanks for all the hard work. Do you have a list of the php extensions you support? I’m wondering if things like cURL, memcache, pdo MySQL etc are supported. I found <a href="https://github.com/facebook/hiphop-php/wiki/Extensions-and-modules-roadmap" rel="nofollow">https://github.com/facebook/hiphop-php/wiki/Extensions-and-m...</a> but its a bit outdated (last mod 2yrs ago).<p>Also wondering what APC methods you support.
"So, when you combine XHP with HipHop PHP you can start to imagine that the performance penalty would be a lot less than 75% and it becomes a viable approach."
<a href="http://toys.lerdorf.com/archives/54-A-quick-look-at-XHP.html" rel="nofollow">http://toys.lerdorf.com/archives/54-A-quick-look-at-XHP.html</a>