Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Main where
- import FastString
- import Control.Exception
- import Control.Monad
- import System.Mem
- import FastStringBench2
- import FastStringEnv
- import Module
- import Data.IORef
- mkString :: Int -> (A, Int)
- mkString n = (A (mkFastString (show n <> "test-string")), n)
- data A = A FastString
- instance HasFastString A where
- getFastString (A fs) = (mkFastString "a") `appendFS` fs
- main = do
- forM_ [0..5] $ \i -> do
- print i
- let n = 1000000
- let ss = map mkString [i..i + 1000000]
- let env = mkFsEnv ss
- c <- readIORef fastStringGcCounter
- print c
- forM_ [i .. i + 1000000] $ \i -> do
- let (key, _) = mkString i
- evaluate $ lookupFsEnv_NF env key
- performGC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement