Hello, Igniters! In java8 java.lang.zip.CRC32 methods become intrinsic, moreover new "update" method, which use ByteBuffer was introduced. Since we moved to java8, perhaps we really can get performance boost by using standard java.lang.zip.CRC32 instead of PureJavaCrc32.
About compatibility: looks like PureJavaCrc32 implements the same algorithm as java.lang.zip.CRC32. These two implementations uses the same polynomial and the same initial value. The only difference is final xor mask (0xFFFFFFFF for java.lang.zip.CRC32). So, we can easily convert from PureJavaCrc32 to standard CRC32 and vice versa, using this expression: crc32 ^= 0xFFFFFFFF 2018-08-14 0:19 GMT+03:00 Eduard Shangareev <eduard.shangar...@gmail.com>: > Evgeniy, > > Could you share benchmark code? And please share what version of JVM > you have used. > > On Mon, Aug 13, 2018 at 10:44 PM Zhenya <arzamas...@mail.ru.invalid> > wrote: > > > I think it would break backward compatibility, as Nikolay mentioned above > > we would take exception here: > > > > [1] > > > > https://github.com/apache/ignite/blob/master/modules/ > core/src/main/java/org/apache/ignite/internal/processors/ > cache/persistence/file/FilePageStore.java#L372 > > > > thats why i question for community thoughts here. > > > > > Hi Evgeniy, > > > > > > would you like to submit a patch with CRC32 implementation change? > > > > > > Sincerely, > > > Dmitriy Pavlov > > > > > > пн, 13 авг. 2018 г. в 22:08, Евгений Станиловский > > > <arzamas...@mail.ru.invalid>: > > > > > >> Hi, igniters, i wrote a simple bench, looks like PureJavaCrc32 has > > >> performance problems in compatible with zip.CRC32. > > >> > > >> Benchmark Mode Cnt Score Error Units > > >> BenchmarkCRC.Crc32 avgt 5 1088914.540 ± 368851.822 ns/op > > >> BenchmarkCRC.pureJavaCrc32 avgt 5 6619408.049 ± 3746712.210 ns/op > > >> > > >> thoughts? > > >