public final class XXHashFactory
extends java.lang.Object
XXHash32
and StreamingXXHash32
instances.
This class has 3 instances
native
instance which is a JNI binding to
the original LZ4 C implementation.
safe Java
instance which is a pure Java port
of the original C library,unsafe Java
instance which is a Java port
using the unofficial Unsafe
API.
Only the safe instance
is guaranteed to work on your
JVM, as a consequence it is advised to use the fastestInstance()
or
fastestJavaInstance()
to pull a XXHashFactory
instance.
All methods from this class are very costly, so you should get an instance
once, and then reuse it whenever possible. This is typically done by storing
a XXHashFactory
instance in a static field.
Modifier and Type | Method and Description |
---|---|
static XXHashFactory |
fastestInstance()
Returns the fastest available
XXHashFactory instance. |
static XXHashFactory |
fastestJavaInstance()
Returns the fastest available
XXHashFactory instance which does not
rely on JNI bindings. |
XXHash32 |
hash32()
Returns a
XXHash32 instance. |
XXHash64 |
hash64()
Returns a
XXHash64 instance. |
static void |
main(java.lang.String[] args)
Prints the fastest instance.
|
static XXHashFactory |
nativeInstance()
Returns a
XXHashFactory that returns XXHash32 instances that
are native bindings to the original C API. |
StreamingXXHash32 |
newStreamingHash32(int seed)
Return a new
StreamingXXHash32 instance. |
StreamingXXHash64 |
newStreamingHash64(long seed)
Return a new
StreamingXXHash64 instance. |
static XXHashFactory |
safeInstance()
Returns a
XXHashFactory that returns XXHash32 instances that
are written with Java's official API. |
java.lang.String |
toString() |
static XXHashFactory |
unsafeInstance()
|
public static XXHashFactory nativeInstance()
XXHashFactory
that returns XXHash32
instances that
are native bindings to the original C API.
Please note that this instance has some traps you should be aware of:
XXHashFactory
that returns XXHash32
instances that
are native bindings to the original C API.public static XXHashFactory safeInstance()
XXHashFactory
that returns XXHash32
instances that
are written with Java's official API.XXHashFactory
that returns XXHash32
instances that
are written with Java's official API.public static XXHashFactory unsafeInstance()
XXHashFactory
that returns XXHash32
instances that
may use Unsafe
to speed up hashing.public static XXHashFactory fastestJavaInstance()
XXHashFactory
instance which does not
rely on JNI bindings. It first tries to load the
unsafe instance
, and then the
safe Java instance
if the JVM doesn't have a
working Unsafe
.XXHashFactory
instance which does not
rely on JNI bindings.public static XXHashFactory fastestInstance()
XXHashFactory
instance. If the class
loader is the system class loader and if the
native instance
loads successfully, then the
native instance
is returned, otherwise the
fastest Java instance
is returned.
Please read javadocs of nativeInstance()
before
using this method.
XXHashFactory
instance.public StreamingXXHash32 newStreamingHash32(int seed)
StreamingXXHash32
instance.seed
- the seed to useStreamingXXHash32
instancepublic StreamingXXHash64 newStreamingHash64(long seed)
StreamingXXHash64
instance.seed
- the seed to useStreamingXXHash64
instancepublic static void main(java.lang.String[] args)
args
- no argument requiredpublic java.lang.String toString()
toString
in class java.lang.Object