The HipHop Virtual Machine
11–20 of 31 posts
Re: The HipHop Virtual Machine
#12I'm using HHVM in production for a few weeks now and all I can say is I'm very happy with the results. It's running stable (compiled under CentOS7) and I was able to cut the response times in half (~145ms with php-fpm, ~70ms HHVM).
Re: The HipHop Virtual Machine
#13Good stuff! Uncached, HHVM outperforms my cached php-fpm sites.
Re: The HipHop Virtual Machine
#14I'm using HHVM in production for a few weeks now and all I can say is I'm very happy with the results. It's running stable (compiled under CentOS7) and I was able to cut the response times in half (~145ms with php-fpm, ~70ms HHVM).
What is the version of your PHP?
Re: The HipHop Virtual Machine
#15I'm using HHVM in production for a few weeks now and all I can say is I'm very happy with the results. It's running stable (compiled under CentOS7) and I was able to cut the response times in half (~145ms with php-fpm, ~70ms HHVM).
What is the version of your PHP?
Re: The HipHop Virtual Machine
#16So, a couple of questions: a. Does the HHVM JIT do anything that LuaJIT doesn't? I assume you are familiar with LuaJIT, as it is mentioned in the paper - and from a quick scan, the only two things I didn't recognize from LuaJIT were the refcount optimizations (not required by Lua GC) and guard relaxation. b. Is HHIR tied to Php, or is it usable as a general purpose JIT backend? LuaJIT's IR is, (unfortunately for othe…
Despite a lot of that's gone in to Parrot, PyPy, v8, etc, none of these VMs seem to have really taken off beyond the language they were intended for. Somewhat more sad is that pretty much all de-facto default runtimes for popular dynamic languages (except Javascript) are still interpreters... the cost of being portable.
Re: The HipHop Virtual Machine
#17Re: The HipHop Virtual Machine
#18So, a couple of questions: a. Does the HHVM JIT do anything that LuaJIT doesn't? I assume you are familiar with LuaJIT, as it is mentioned in the paper - and from a quick scan, the only two things I didn't recognize from LuaJIT were the refcount optimizations (not required by Lua GC) and guard relaxation. b. Is HHIR tied to Php, or is it usable as a general purpose JIT backend? LuaJIT's IR is, (unfortunately for othe…
It's a shame. As far as I can tell, the only proven multi-language JIT for FOSS platforms is still the JVM? (and Mono maybe?) Despite a lot of that's gone in to Parrot, PyPy, v8, etc, none of these VMs seem to have really taken off beyond the language they were intended for. Somewhat more sad is that pretty much all de-facto default runtimes for popular dynamic languages (except Javascript) are still interpreters...…
It works for multiple languages that go the extra mile - e.g. Jython pays very dearly in performance because of the object model mismatch between Python and Java. And I haven't looked closely recently, but when Clojure first came out, the impedance mismatch between Clojure's persistent data structures and Java's mutable ones also had a ridiculous performance cost.
Mono is perhaps more deserving of that title, especially together with IKVM, (so, everything JVM), F#, IronPython and Boo. But note that everything is still shackled to the underlying object model.
But if anything, LLVM is the only proven multi-language JIT for FOSS platforms; it's method-at-a-time, which is great for staticly typed languages (whether those types are declared upfront or inferred), not so much for extremely dynamic languages.
Re: The HipHop Virtual Machine
#19So, a couple of questions: a. Does the HHVM JIT do anything that LuaJIT doesn't? I assume you are familiar with LuaJIT, as it is mentioned in the paper - and from a quick scan, the only two things I didn't recognize from LuaJIT were the refcount optimizations (not required by Lua GC) and guard relaxation. b. Is HHIR tied to Php, or is it usable as a general purpose JIT backend? LuaJIT's IR is, (unfortunately for othe…
It's a shame. As far as I can tell, the only proven multi-language JIT for FOSS platforms is still the JVM? (and Mono maybe?) Despite a lot of that's gone in to Parrot, PyPy, v8, etc, none of these VMs seem to have really taken off beyond the language they were intended for. Somewhat more sad is that pretty much all de-facto default runtimes for popular dynamic languages (except Javascript) are still interpreters...…
Re: The HipHop Virtual Machine
#20I assume latent type means simply the implicit typing. i.e. you declare a variable with the value, and the type is inferred through the value of the variable rather than the explicit type declared.
Hi, I'm one of the paper's co-authors. As usual, the abstract really isn't enough to draw big conclusions from. The concept of a latent type applies to arbitrary expressions, not just variables. All the values flowing through a PHP program implicitly share the same union type; they can be floats, strings, arrays, etc. The latent types are the narrower types that can actually flow through the program in practice. To b…