Facebook's HipHop - What's it for?

后端 未结 6 447
醉梦人生
醉梦人生 2021-02-06 11:29

The news in the PHP world today is Facebook\'s HipHop, which:

HipHop for PHP isn\'t technically a compiler itself. Rather it is a source code transformer.

相关标签:
6条回答
  • 2021-02-06 11:51

    Well it "transforms" PHP into C++ to help performance of a largely scalable website.

    So, HipHop is for when you have a website that you started at Harvard that you quickly grow into a billion dollar company and that people are making a movie about starring Justin Timberlake. When you have such a website and want to save CPU cycles, but don't want to rewrite your codebase, you use HipHop.

    If you are just starting out, unless you are trapped on a desert island with only PHP programmers that refuse to learn a more scalable language, you don't use HipHop.

    0 讨论(0)
  • 2021-02-06 12:00

    This article:

    http://terrychay.com/article/hiphop-for-faster-php.shtml

    answers this question perfectly with its series of "if" statements.

    0 讨论(0)
  • 2021-02-06 12:05

    You can think of it as some sort of compiler that takes in a bunch of .php files, and generate a bunch of c++ files for which you can then compile using g++ (Not sure if other compilers are supported). The resulting exe is your web application with a web server included. That means you could run the exe and you are good to go. The web server is based on libevent and supposedly pretty efficient.

    0 讨论(0)
  • Hip Hop is essentially pointless to everyone except Facebook and other gigantic PHP-based sites. I'm sure many people will jump on the bandwagon due to "it's fast" but how many PHP based apps use whole server farms? Just because you are working on a social network site, doesn't mean you should consider using HH.

    0 讨论(0)
  • 2021-02-06 12:06

    Web applications that do a lot of processing and/or use a lot of memory. Apparently this HipHop will reduce CPU usage by around 50% and also reduce memory usage (I didn't see how much the memory usage would be reduced by mentioned anywhere). This means that you should be able to serve the same number of requests with fewer servers.

    An added benefit may be that there will be some basic type checking to ensure that the code is consistent before it is compiled. This should help to locate the type of bugs that PHP currently tends to ignore as a result of its weak type system.

    The downside appears to be that it might not support some of PHP's more dynamic features such as eval (though arguably that's a positive too).

    0 讨论(0)
  • 2021-02-06 12:07

    Running machine code over interpreted code is faster. This is useful in one sense, but also reduces the amount of machines you require, as each processor has less work to do.

    This is good for a company like Facebook, in that they can cut the amount of machines they need.
    In terms of why it's useful for them, they probably run a lot of sorting and indexing, on the large amounts of data they have.

    0 讨论(0)
提交回复
热议问题