4 ms·
tl;dr what is HHVM and why should I care as a PHP developer?
by Nilzor 13y ago
tl;dr what is HHVM and why should I care as a PHP developer?
- philo23 13y agoHipHop Virtual Machine, it "compiles" PHP into C++. Though it needs to be written in a certain way to work correctly as I understand it.
- unfunco 13y agoIt doesn't need to be written in a certain way, there may be new features in recent releases of PHP that don't work on HHVM but the HHVM folks are pretty quick to add in support for those features. Here is a little library[0] I wrote in PHP and this is tested on HHVM using Travis (see .travis.yml). I haven't had to write the PHP any differently, it just works (although it's an incredibly small library). Edit: The speaker in the video also mentions that they have taken the test suites from the top twenty PHP projects and they test them against new releases of HHVM, further confirming that the syntax requires no special attention except for new language constructs. [0] https://github.com/unfunco/bijective https://github.com/unfunco/bijective
- drdaeman 13y agoYou're mistaking HHVM with HPHPc. They're both Facebook projects and one grew inspired by another, but they use different approaches.
- tscherno 13y agoIt`s a jit-compiler for PHP. Code is compiled once to an intermediate representation (like Java) which makes execution faster on subsequent request. Code does not have to be written in a certain way most of the time because hhvm is 98% compatible to all major PHP-Frameworks[1]. It also features a built-in webserver alltough static performance is lower than nginx. [1] http://www.hhvm.com/blog/2813/we-are-the-98-5-and-the-16 http://www.hhvm.com/blog/2813/we-are-the-98-5-and-the-16
- agumonkey 13y agoSomehow an asm.php
- plextoria 13y agoNo, it does not compile to C++, but to bytecode. HHVM's predecessor converted PHP to C++, though.
- blowski 13y agoWhat's the difference between that and APC? The performance, or is there something else? Confession: I haven't listened to the OP yet.
- RossM 13y agoIt's an alternative PHP runtime. It no longer compiles PHP to C++ (it's predecessor hphpc), instead it uses a JIT compiler which gives it better performance over standard PHP, without requiring a compilation step. It's mostly compatible with the standard PHP syntax/stdlib. It offers an alternative syntax that allows you to give return types of functions, which can give you further speed improvements. There's also a few additional features (for example, it supports similar hinting to the recent ArrayOf RFC). It's worth checking out, but probably not worth using in production yet - they're working on getting the top 20 frameworks to pass their unit tests in HHVM[0], so there's a good chance your existing apps will run. [0]: http://www.hhvm.com/blog/2813/we-are-the-98-5-and-the-16 http://www.hhvm.com/blog/2813/we-are-the-98-5-and-the-16
- bovermyer 13y agoPhalcon is noticeably absent from that list. Do they have any intention of supporting that, too?
- thejosh 13y agoUnless you are running something custom/unsupported, if you are using nginx/php-fpm you can just replace it with the HHVM FastCGI and get it to run your code really really fast. It's great as it makes everything run a lot quicker for clients who use PHP, especially if you have code that needs to be run in PHP on the command line. Just run it and see :).
- madsushi 13y agoWell, it doesn't support mysqli_, which is a very common family of functions, especially since mysql_ is being deprecated. But a lot of stuff does run, as long as it doesn't need mysqli_.