Class PureJavaCrc32

java.lang.Object
org.apache.hadoop.util.PureJavaCrc32
All Implemented Interfaces:
Checksum

@Public @Stable public class PureJavaCrc32 extends Object implements Checksum
A pure-java implementation of the CRC32 checksum that uses the same polynomial as the built-in native CRC32. This is to avoid the JNI overhead for certain uses of Checksumming where many small pieces of data are checksummed in succession. The current version is ~10x to 1.8x as fast as Sun's native java.util.zip.CRC32 in Java 1.6
See Also:
  • Constructor Details

    • PureJavaCrc32

      public PureJavaCrc32()
      Create a new PureJavaCrc32 object.
  • Method Details

    • getValue

      public long getValue()
      Specified by:
      getValue in interface Checksum
    • reset

      public void reset()
      Specified by:
      reset in interface Checksum
    • update

      public void update(byte[] b, int offset, int len)
      Specified by:
      update in interface Checksum
    • mod

      public static int mod(long x)
      Compute x mod p, where p is the CRC32 polynomial.
      Parameters:
      x - the input value
      Returns:
      x mod p
    • update

      public final void update(int b)
      Specified by:
      update in interface Checksum