Option to utilize ClientProvider.sleep_and_check time to perform Gc.major_slice
commit8f914c9bb1e71a88770ca5f78ad9bd9b646a23f8
authorKasper Kopec <kasper@fb.com>
Fri, 2 Nov 2018 01:48:23 +0000 (1 18:48 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Fri, 2 Nov 2018 01:51:14 +0000 (1 18:51 -0700)
tree927b5225958f493c34765343f5788e7f9b404dcf
parent6ee3860fcb53a8351a133feee45f5227da659dae
Option to utilize ClientProvider.sleep_and_check time to perform Gc.major_slice

Summary:
All the things I tested in {D10456676} did almost nothing to prevent the 1+ second pauses in master processes causing us unhealthy IDE minutes. We seem to be just too slow no matter what, and big source of slowness is having to GC all the garbage we allocate.

With this diff I'm going to test the hypothesis that maybe there are enough breaks between different commands that now are wasted, but could be utilized to reorder the heap and smooth out the peaks.

I don't really believe that it will work on it's own (we send too many too expensive commands in a row on single keystroke), but maybe it will help when combined with some other things (like D12879624).

Reviewed By: pittsw

Differential Revision: D12879607

fbshipit-source-id: 6000fda28c209455d35bacee51d112e9a10a4921
hphp/hack/src/server/clientProvider_sig.ml
hphp/hack/src/server/serverClientProvider.ml
hphp/hack/src/server/serverIdleGc.ml [new file with mode: 0644]
hphp/hack/src/server/serverIdleGc.mli [new file with mode: 0644]
hphp/hack/src/server/serverLocalConfig.ml
hphp/hack/src/server/serverMain.ml
hphp/hack/src/server/testClientProvider.ml