MurmurHash.net
1.0.0
تنفيذ C# لـ Murmur Hash 2
الاستخدام:
MurmurHash2.Hash("mystring");
MurmurHash2.Hash(byteArray);
لقد كتبت معيارًا صغيرًا لاختبار عدد التصادمات على 466 ألف كلمة (قائمة بجميع الكلمات الإنجليزية المأخوذة من هنا: https://github.com/dwyl/english-words) وعدد التصادمات هو 22 وهو ما أعتبره نتيجة جيدة جدا.
يعطي string.GetHashCode()
القياسي 48 تصادمًا في قائمة الكلمات المكونة من 466 ألف كلمة.
الوقت المنقضي (في قائمة الكلمات المكونة من 466 ألف كلمة):
التجزئة | الوقت المنقضي | #الاصطدامات |
---|---|---|
MurmurHash2 | 104 مللي ثانية | 22 |
GetHashCode | 47 مللي ثانية | 48 |
على الأرقام من 1
إلى 999999
(فكر في الرموز البريدية) كانت النتائج:
التجزئة | الوقت المنقضي | #الاصطدامات |
---|---|---|
MurmurHash2 | 234 مللي ثانية | 56 |
GetHashCode | 121 مللي ثانية | 0 |
يعد GetHashCode
أفضل مع التصادمات هنا، لكن MurMur يتألق في النصوص الأطول.