MurmurHash.net
1.0.0
การใช้งาน C# ของ Murmur Hash 2
การใช้งาน:
MurmurHash2.Hash("mystring");
MurmurHash2.Hash(byteArray);
ฉันเขียนเกณฑ์มาตรฐานขนาดเล็กเพื่อทดสอบจำนวนการชนกันของคำ 466,000 คำ (รายการคำภาษาอังกฤษทั้งหมดที่นำมาจากที่นี่: https://github.com/dwyl/english-words) และ จำนวนการชนกันคือ 22 ซึ่งฉันคิดว่า ผลลัพธ์ค่อนข้างดี
Standard string.GetHashCode()
ให้ การชนกัน 48 ครั้ง ในรายการคำ 466,000 คำ
เวลาที่ผ่านไป (ในรายการคำ 466,000):
กัญชา | เวลาที่ผ่านไป | #ของการชนกัน |
---|---|---|
บ่นHash2 | 104 มิลลิวินาที | 22 |
รับแฮชโค้ด | 47 น | 48 |
สำหรับตัวเลขตั้งแต่ 1
ถึง 999999
(ลองนึกถึงรหัสไปรษณีย์) ผลลัพธ์คือ:
กัญชา | เวลาที่ผ่านไป | #ของการชนกัน |
---|---|---|
บ่นHash2 | 234 ม | 56 |
รับแฮชโค้ด | 121 ม | 0 |
GetHashCode
จะดีกว่าเมื่อมีการชนกันที่นี่ แต่ MurMur จะส่องสว่างในข้อความที่ยาวกว่า