
#7674: Separate StablePtr table from StableName table. -----------------------------+---------------------------------------------- Reporter: EyalLotem | Owner: EyalLotem Type: task | Status: patch Priority: normal | Component: Runtime System Version: 7.6.2 | Keywords: rts stable_ptr stable_name performance Os: Unknown/Multiple | Architecture: Unknown/Multiple Failure: None/Unknown | Blockedby: Blocking: | Related: -----------------------------+---------------------------------------------- Changes (by EyalLotem): * status: new => patch Comment: The benchmark is the small_hash_hs FFI binding to the small_hash library. They're at: https://github.com/Peaker/small_hash https://github.com/Peaker/small_hash_hs (To build the latter, you need to clone the former directly inside it). If you run small_hash_hs, it's runtime will be dominated by GC's, because of #7670. (~8 sec on my machine). However, if you set the min heap size to 200M (via "+RTS -H200M"), the run time becomes dominated by the stable ptr hash table/etc. To run the benchmark on ordinary GHC, you need to use small_hash_hs's "unpatched_ghc" branch. Patches at: https://github.com/Peaker/ghc/commits/separate_stable_tables On my hardware: Before patch After patch Hash insertion time 2.4 0.8 Total time 3.8 1.2 Hash insertion time 2.9 1.2 (-threaded) Total time 4.8 1.6 (-threaded) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7674#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler