private long longHashCode(Bytes bytes) { long h = 0; int i = 0; long limit = bytes.limit(); // clustering. for (; i < limit - 7; i += 8) h = 10191 * h + bytes.readLong(i); // for (; i < bytes.limit() - 3; i += 2) // h = 10191 * h + bytes.readInt(i); for (; i < limit; i++) h = 57 * h + bytes.readByte(i); h ^= (h >>> 31) + (h << 31); h += (h >>> 21) + (h >>> 11); return h; }