現在、vcache-trieモジュールを使用しているプロジェクトで作業しています。私はlookupPrefix
関数でトライ内の研究の実行速度をテストしようとしています。TrieのNFDataインスタンスを作成する
これは、この目的のための基準で作成したベンチマークです:トライが基準の環境で作成され
bench "trieSearch" $ nf (lookupPrefix (pack "ab")) trie
。このトライのタイプはTrie Int
です。
環境が通常の形式に評価されるため、この特定の種類のインスタンスを作成する必要があります。NFData
この特定のケースの内容は[(ByteString、Int)]ですが、NFDataのインスタンスは各タプルを評価する必要がありますが、どのように処理するかはわかりません。
ご迷惑をおかけして申し訳ありませんが、私の問題を読んでいただきありがとうございます。
おかげで、それはで働いています回避策。私は提案されたようにメンテナーに連絡します。 – Barbrousse
@Barbrousse、私は 'NFData'インスタンスが本当にあなたが望むものが得られるかどうかは分かりません。ドキュメントから: "VRefの第一の動機は、メモリキャッシングされた値、つまり一度にすべてRAMに格納すべきではない非常に大きなデータ構造をサポートすることです。私は結果に 'deepseq'を実行することによって、操作のパフォーマンスの意味が分かります。つまり、パッケージはおそらく 'NFData'インスタンスを提供するはずです。 – dfeuer
@dfeuerご回答いただきありがとうございます。この場合、より正確なテストを作成することができますか? – Barbrousse