https://github.com/joeyrobert/bloomfilterは、パフォーマンス キラーであるハッシュ関数に Random クラスを使用します。
私がやろうとしているのは、ジェネリック引数(T)の代わりにバイト[]を使用してクラスを入力し、取り除くことです
private int Hash(T item) { return item.GetHashCode(); }
_random.Next(_bitSize)
パフォーマンスが大幅に向上することはわかっていますが、ここを置き換える方法がわかりません。
#region Public Methods
/// <summary>
/// Adds an item to the bloom filter.
/// </summary>
/// <param name="item">Item to be added</param>
public void Add(T item)
{
_random = new Random(Hash(item));
for (int i = 0; i < _numberOfHashes; i++)
_bitArray[_random.Next(_bitSize)] = true;
}
1ビットごとに数千のCPUサイクルを必要としない、遅延のないコード行を使用します。
コードには他にも多くの問題があり、コードをより高速/安全にすることができます.私はそれらを(ほとんど)修正し、変更をプッシュする前に最後の問題に行き詰まりました.
どんな助けでも本当に感謝しています。