Sherman,

what is the magic behind, that the adler32 function runs faster on BirectBuffer 
than on byte[]?
Is it GetPrimitiveArrayCritical(env, b, 0) + ReleasePrimitiveArrayCritical(env, 
b, buf, 0) ?

Am 24.11.2011 23:47, schrieb Xueming Shen:
Alan, Ulf,

Webrev has been updated accordingly

(1) {@code}
(2) better wording for opening sentence as suggested
(3) added -benhmark option for TimeCheckSum, so only do the benchmark run
     (with 100000 iteration) when  this option is manually specified. Without 
the
     option, it runs as a "normal"  regression test with iteration 1.
(4) to use "ratio" of "time of ByteBuffer: time of byte[]" as
    http://cr.openjdk.java.net/~sherman/7109837/benchmark
Reads much better :-)


http://cr.openjdk.java.net/~sherman/7109837/webrev
Have you thought about overloading? :
void update(DirectBuffer buffer) +
void update(ByteBuffer buffer)
It would save the instanceof and the cast.
At least I would like to see a note in the javadoc, that using DirectBuffer in doubt would be faster than HeapBuffer.

Isn't
    adler32.update(buf.array(), buf.position(), buf.remaining());
    buf.flip();
faster than
    adler32.update(buf);
?

Additionally I'm wondering, if there are Buffers which are not direct and 
dont't have array().

-Ulf

Reply via email to