Description
HHVM Version: 3.18.1 LTS
Context
There have been some incredibly large spikes when the HHVM server first boots up (within the first 12 requests). I ran some profiling on this and determined this to be the JIT compiling the code. I'm surprised that the JIT compilation can't be out of band (le'ts leave that for a discussion in a seperate thread).
Results
When I turned the JIT off these huge spikes went away and increased stability. The interesting thing was that the response times were identical before and after. This implies that either our codebase is so bad the JIT is completely useless or that the JIT has no real benefit.
I decided to do some more testing and used the symfony demo app which I assumed would be a reasonable codebase to see a noticeable change between turning the JIT on and off. This was also proved wrong. The JIT had no real benefit here either.
Help?!
I was wondering if there was a way to prove that the JIT is working and has benefit?
I'd also like to see the codebase where the JIT is benefiting so that I can compare ours to determine the best way to write performant code.
Configuration
If possible, could the configuration of a performant JIT also be shared? I tried changing multiple configuration options to see if the performance was simply a configuration problem but this approach led nowhere.