aboutsummaryrefslogtreecommitdiff
path: root/vendor/cabal-helper-0.8.1.2/src/CabalHelper/Shared/Common.hs
diff options
context:
space:
mode:
authoralexwl <alexey.a.kiryushin@gmail.com>2019-01-23 17:18:29 +0300
committeralexwl <alexey.a.kiryushin@gmail.com>2019-01-23 17:18:29 +0300
commit0f84e1f004e29663b51e550d5bf7abe6188d3dca (patch)
treebc186f07c139029f2713ae967bb4b1e8b403fe9d /vendor/cabal-helper-0.8.1.2/src/CabalHelper/Shared/Common.hs
parent2713b196d3af4e7d0bb42b9ba951ae3cb5cf5873 (diff)
Optimize memory usage of haskell-code-server
This commit adds an option to create an on-disk key-value store that contains all the data from PackageInfo of each indexed package in a queriable form. The store can be used by haskell-code-server to respond to API requests. The main benefit of using the store, compared to deserializing and loading PackageInfo of each package into memory, is reduced memory usage (approximately 7 times for a set of Haskell packages). The key-value store on disk consists of two files: 'index' and 'values'. 'index' is a small file that contains a map from strings to locations in a 'values' file. 'index' file should be deserialized and loaded into memory. 'values' is a large file that contains serialized Haskell data structures. 'values' file can be either read directly (without deserializing) or memory-mapped.
Diffstat (limited to 'vendor/cabal-helper-0.8.1.2/src/CabalHelper/Shared/Common.hs')
0 files changed, 0 insertions, 0 deletions