Beispiel #1
0
        static void RunAll <TKey>(List <TKey> keys, string content)
        {
            var xxHash = XXHash32.Create();

            xxHash.Initialize();
            var murmur = new System.Data.HashFunction.MurmurHash3();
            var city   = new System.Data.HashFunction.CityHash();

            // Default:
            DrawHashes(keys, x => x.GetHashCode(), $"hash_{content}_default");

            // xxHash:
            DrawHashes(keys, x =>
            {
                var h = xxHash.ComputeHash(ToBytes((dynamic)x));
                return(BitConverter.ToInt32(h, 0));
            },
                       $"hash_{content}_xx");

            // Murmur:
            DrawHashes(keys, x =>
            {
                var h = murmur.ComputeHash(ToBytes((dynamic)x));
                return(BitConverter.ToInt32(h, 0));
            },
                       $"hash_{content}_murmur");

            // City:
            DrawHashes(keys, x =>
            {
                var h = city.ComputeHash(ToBytes((dynamic)x));
                return(BitConverter.ToInt32(h, 0));
            },
                       $"hash_{content}_city");
        }
Beispiel #2
0
        private static long CalculateHash(string filename, long offset)
        {
            var hasher = new System.Data.HashFunction.MurmurHash3(128);

            var stream = FileHelper.GetStreamAtOffset(filename, offset);

            var rawHash = hasher.ComputeHash(stream);

            return(BitConverter.ToInt64(rawHash, 0) ^ BitConverter.ToInt64(rawHash, 8));
        }