HHVM

From   
Revision as of 06:29, 18 July 2023 by Altilunium (talk | contribs) (Created page with "{{Cquote|Facebook was and is a kind of overgrown LAMP stack app. You had Linux Apache, MySQL and PHP. But the thing that was really getting our attention was that we were burning a ton of CPU executing this PHP. We needed to do something to reduce the CPU cost of running the site on PHP. HPHP was a project that was started initially by Haiping Zhao, but significant team grew up around Haiping to do this. HPHP took a PHP source base's input and tried to produce a semant...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Facebook was and is a kind of overgrown LAMP stack app. You had Linux Apache, MySQL and PHP. But the thing that was really getting our attention was that we were burning a ton of CPU executing this PHP. We needed to do something to reduce the CPU cost of running the site on PHP.

HPHP was a project that was started initially by Haiping Zhao, but significant team grew up around Haiping to do this. HPHP took a PHP source base's input and tried to produce a semantically equivalent C++ program. PHP is slow. C++ is fast. If you can lower PHP down to C++, maybe you get a fast program out of it.

They built a thing that actually worked. That could take a big complicated PHP program like Facebook, compile it, link it, produce a gigantic binary, and that binary is executed behind port 80 of Facebook for several years. Out of the gate, it was order of 2x faster. Therefore, 2x more economical in terms of dollars per user spent on CPUs. That bought us, the company, years of runway.

We had christened it HipHop for public consumption, because of trademark reasons. PHP is actually a registered trademark. So if you go around calling your project something-something PHP. You'll get a sternly worded letter. So if you grabbed /usr/dict/words for words that start with H and then have a P and then an H and then a P, HipHop is by far the most palatable one you'll come up with.

So HipHop had been sort of released as an actual project. And me, Jason and Drew started talking about something -- that eventually before it had an real identity -- we called the HipHopVM.
—Keith Adams (2019) Facebook PHP with Keith Adams Software Engineering Daily