Facebook Gives PHP a Boost with HipHop Virtual Machine

PHP logoFacebook has introduced a new PHP interpreter that makes the scripting language perform better under the stress of loading millions (or even billions) of dynamic pages. The developers at Facebook have even given it a cool name to make sure you remember it. It is called HipHop Virtual Machine (HHVM) and has reportedly increased the speed of Facebook’s code by 60 percent.

On the average website, code optimization is not a huge priority. Even if a site is serving up millions of pages, most of those pages rarely change, making it easy to cache them for later access. But Facebook is all about change. It is constantly changing. In some cases, Facebook pages change even when no one is using them. They have become dynamic to the point of almost being sentient. All of that takes a ton of processing power and can easily bog down even some of the most powerful web servers.

Facebook was largely built with PHP, a free and open scripting language, but in order to deal with some of the limitations of PHP, Facebook has been funding the development of projects like Zend Engine, hoping to improve the speed and efficiency of its code. Eventually, the technical cost of working with Zend and C++ was too much, and Facebook began developing its own solution. That solution, HPHP (or HipHop) proved to be much faster but present problems with debugging. HipHop Virtual Machine is designed to deal with those problems and make Facebook development much faster.

HHVM is still under development, but Facebook has already released the project under an open source license and made it available online at GitHub. This is not the first time that Facebook has innovated new tools for optimizing large-scale web applications and then released them to the open source community. In 2008, it released its distributed database system called Cassandra, which eventually became a project of The Apache Software Foundation.

PR News For You:

Leave a Reply

Your email address will not be published. Required fields are marked *