4

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"
4

2 に答える 2

2

GHC7シリーズで動作するようにパッケージを更新しました。

これが-cafeでの質問の結果です

ここに画像の説明を入力してください

于 2012-12-01T18:25:21.530 に答える
1

ghc-gc-tune.hs [1] の 485 行目

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

これは、有効な Haskell リスト構文ではない GC infodump の先頭をトリミングしているようです - 簡単→難しい順序で 3 つのオプション:

  1. 開始時にコードが単一の改行を stderr に出力するようにします (簡単なハック)。

    main = hPutStrLn stderr "" >> do ...   -- untested...
    
  2. ghc-gc-tune.hs にパッチを当てて、stderr の 1 行をドロップしないようにします。

    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
    

おそらく以前のバージョンの 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

于 2012-10-13T17:51:01.247 に答える