タグ

ブックマーク / medium.com/@maoe (3)

  • Haskell Day 2016

    http://connpass.com/event/37892/ SPJが東京に来るということで、久々にイベントに行ってみた。Simonの話はいつもエネルギッシュで聞いているだけで元気が沸いてくる。 午前中に初心者向けのチュートリアルをやって、午後に数のトーク。最後にSimonが2時間に渡ってGHCの中間言語であるCoreとCoreのレベルで行われている最適化について解説するという内容だった。資料は後日公開されるようだけど、おそらく録画はされていなかったと思うので見逃した人はErlang User Conference 2016の動画を見ると良いと思う。 Into the Core — Squeezing Haskell into Nine Constructors by Simon Peyton JonesSimonのプレゼンの間とその後にいくつか質問したのでメモとして残しておく。 Q

  • viewprofでGHCの.profファイルを見やすくする

    GHCの時間・メモリ割当プロファイリングは、Haskellプログラムがどこで時間を使っているか、またどこでメモリ割当をたくさんしているのかを、コスト集約点(cost center)をノードとする木構造で表示してくれる。 このプロファイラが生成するレポートは、プログラムの規模に応じて大きくなるため、大きなプロジェクトではボトルネックがどこにあるのか一瞥しただけでは分かりにくくなる。 この問題を解決するためにviewprofというテキストベースのビューアを作っている。まだ作りかけで表示があまりに素っ気なかったり、必要な機能が足りないのだけど、試すことはできる。 使い方maoe/viewprofをcloneしてstack installでviewprofコマンドがインストールされる。例えばghc-prof-flamegraphの紹介記事に出てくるこのhoogleのプロファイル結果をviewpro

    viewprofでGHCの.profファイルを見やすくする
    igrep
    igrep 2016/12/25
    使ってみて確かめたい。
  • GHCヒーププロファイリングの手引き

    非正格評価をデフォルトとするHaskellは、注意を怠るとしばしばスペースリークと呼ばれる非効率なメモリの使い方を引き起こす。幸いなことにGHCには多くの場合において有効なヒーププロファイラを備えているので、実際にスペースリークを特定するのはそれほど難しくない。 GHCのヒーププロファイラについて解説した文書としてはGHCの公式マニュアルがあるが、これだけで効果的に使うのは難しいのと、非公式のツールの使い方は紹介されていないので、それらを含めてまとめてみたい。 スペースリークの正格な定義があるのかはさておき、実際の使われ方としては、プログラマが意図しない非効率なメモリの使い方を指すと言ってよいと思う。一口にスペースリークと言っても様々な原因があり、これらを分類する試みとしては例えばSpace leak zooがある。いくつかの例はあとで触れることにして、まずはスペースリークの見つけ方につい

    GHCヒーププロファイリングの手引き
    igrep
    igrep 2015/12/11
    すっげー参考になる
  • 1