Move NamingGlobal.GEnv to shared hash table
commit4175f2d10ece2ea0dbe43f7a19769382f7429a5e
authorDwayne Reeves <dreeves@fb.com>
Sun, 20 Dec 2015 21:51:54 +0000 (20 13:51 -0800)
committerhhvm-bot <hhvm-bot@fb.com>
Sun, 20 Dec 2015 22:00:53 +0000 (20 14:00 -0800)
tree1ab54762c5b587c8e9dd8fb6719795fde92f1f02
parent89632391c571e30c48008ebb1ed45fa43c8d420f
Move NamingGlobal.GEnv to shared hash table

Summary: The NamingGlobal.GEnv grows with the size of the codebase since it contains naming information for every global entity (classes, constants, functions, typedefs). Passing this information to workers via `GlobalStorage` is wasteful since a worker often only needs a very small amount of data. The solution is to move this information from a map stored in the `ServerEnv` to values stored in the shared hash table.

Reviewed By: int3

Differential Revision: D2778724

fb-gh-sync-id: 566623c738107dfef725fd437760b1ad187bfa1a
37 files changed:
hphp/hack/src/hh_emitter.ml
hphp/hack/src/hh_single_type_check.ml
hphp/hack/src/js/hh_ide.ml
hphp/hack/src/naming/naming.ml
hphp/hack/src/naming/naming.mli
hphp/hack/src/naming/namingGlobal.ml
hphp/hack/src/naming/namingGlobal.mli
hphp/hack/src/naming/naming_heap.ml
hphp/hack/src/server/findRefsService.ml
hphp/hack/src/server/serverArgumentInfo.ml
hphp/hack/src/server/serverAutoComplete.ml
hphp/hack/src/server/serverColorFile.ml
hphp/hack/src/server/serverCommand.ml
hphp/hack/src/server/serverConvert.ml
hphp/hack/src/server/serverCoverageMetric.ml
hphp/hack/src/server/serverEnv.ml
hphp/hack/src/server/serverEnvBuild.ml
hphp/hack/src/server/serverIdeUtils.ml
hphp/hack/src/server/serverIdentifyFunction.ml
hphp/hack/src/server/serverInferType.ml
hphp/hack/src/server/serverInit.ml
hphp/hack/src/server/serverRpc.ml
hphp/hack/src/server/serverTypeCheck.ml
hphp/hack/src/server/symbolInfoService.ml
hphp/hack/src/stubs/ai.ml
hphp/hack/src/typing/typing.ml
hphp/hack/src/typing/typing.mli
hphp/hack/src/typing/typing_check_service.ml
hphp/hack/src/typing/typing_decl.ml
hphp/hack/src/typing/typing_decl.mli
hphp/hack/src/typing/typing_decl_service.ml
hphp/hack/src/typing/typing_decl_service.mli
hphp/hack/src/typing/typing_redecl_service.ml
hphp/hack/src/typing/typing_redecl_service.mli
hphp/hack/src/typing/typing_suggest_service.ml
hphp/hack/test/typecheck/naming_ok_test12.php [new file with mode: 0644]
hphp/hack/test/typecheck/naming_ok_test12.php.exp [new file with mode: 0644]