ghc-gc-tune 0.2.1是否适用于ghc 7.4.1?

时间:2012-08-23 19:17:56

标签: haskell garbage-collection ghc

ghc-gc-tune 0.2.1是否适用于ghc 7.4.1?似乎ghc-gc-tune已经有一段时间没有更新了,可能只适用于ghc 6.x?我找不到任何关于此的可靠信息。

我收到以下错误:

ghc-gc-tune: Can't parse GC stats: " ,(\"num_GCs\", \"320602\")\n ,(\"average_bytes_used\", \"105444\")\n ,(\"max_bytes_used\", \"131296\")\n ,(\"num_byte_usage_samples\", \"1677\")\n ,(\"peak_megabytes_allocated\", \"2\")\n ,(\"init_cpu_seconds\", \"0.00\")\n ,(\"init_wall_seconds\", \"0.00\")\n ,(\"mutator_cpu_seconds\", \"6.24\")\n ,(\"mutator_wall_seconds\", \"6.23\")\n ,(\"GC_cpu_seconds\", \"3.57\")\n ,(\"GC_wall_seconds\", \"3.58\")\n ]\n"

2 个答案:

答案 0 :(得分:2)

我已更新该套件以使用GHC 7系列。

以下是question on the -cafe

的结果

enter image description here

答案 1 :(得分:1)

ghc-gc-tune.hs [1]的485行读取

Right str     -> return $! Just $! parse (unlines . drop 1 . lines $ str)

这似乎正在削减你的GC infodump的开始,这是无效的Haskell列表语法 - 简单→硬顺序中的三个选项:

  1. 让你的代码在stderr启动时打印一个换行符(快速破解)

    main = hPutStrLn stderr "" >> do ...   -- untested...
    
  2. 修补ghc-gc-tune.hs以阻止它掉落1行stderr

    Right str     -> return $! Just $! parse str   -- untested...
    
  3. 修补ghc-gc-tune.hs以尝试当前的方式,然后不丢弃1行,选择最有效的方法

    -- code left as an exercise
    -- bonus points if it's submitted upstream as a patch
    
  4. 可能早期版本的GHC在stderr上输出一个额外的标题,尝试类似:

    ./ghc-compiled-test-program +RTS -t --machine-readable -RTS
    

    检查输出。

    [1] http://code.haskell.org/~dons/code/ghc-gc-tune/ghc-gc-tune.hs