haskell-jp / today-i-learned #4

@hongminhee has joined the channel
Bang pattern (`!`) の有無でパフォーマンスが倍変化する例を 2 つ見つけました
変化の理由は分かりませんが、ひとまず Vector を使う時は ! をつけるようにします。
とりあえず標準のタプルはスペースリークの原因になりやすいので中のサンクは極力潰せ、とは聞きますね。 StrictData を常に有効にしろ、という人がいるのもそういう理由でして
今`StrictData` を有効にして実行してみましたが、 ! 無しだと遅いままでした。
StrictData を使っても、すべて (の) サンク関係のロスを予防できるわけではないのですね :memo:
StrictData はあくまで有効にしたモジュールで定義した型の各フィールドに ! を付けるだけなので、既存のタプルには意味がないです(詳しくは https://haskell.jp/blog/posts/2020/strict-gotchas.html )。
だから既存のタプルとは別にそういう Strict なタプルを用意する必要があります。そういうパッケージもあったはずです。