greatly differing processing time between java and Linux while calculating hashes?

Q

qwertmonkey

As far as I could extract from that code (which I find pretty badly
readable btw.) you are measuring digest calculation and IO.
~
Well, if I understand you, you will have to read in the file you are
checksumming anyway, right?
~
I used FileInputStream's read(byte[]) method in a straight forward way,
which is, byte[], what you must feed a MessageDigest's update method. So,
what do you mean?
~
What measures did you take to ensure there are no effects from OS buffering?
~
What do you mean? What extra measure should I take to ensure there are no
effects from OS buffering?
~
Also, why are you comparing apples (Java) and oranges (Linux) - at
least in the subject?
~
Because I am trying to extract sugar from them in the most efficient way
~
Are you aware that the JVM has some startup time
which can be significant when measuring run once applications?
~
Yes, and this is why I am just timing the method call and testing different
block sizes for the buffer ...
~
Still guys (to me) a difference of more than 25% in processing time is
significant and I don't think that what you consider to be my odd style to code
is causing it
~
lbrtchx
 
R

Roedy Green

~
Well, if I understand you, you will have to read in the file you are
checksumming anyway, right?

You want in both cases to read it into RAM, then start your clock,
then do your computation, then stop your clock, so that you measuring
the difference in computation, not i/o.

JVMs take a while to get warmed up. When doing benchmarks you want to
run a few laps before you turn on the clock.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,039
Messages
2,570,375
Members
47,026
Latest member
TishaMadri

Latest Threads

Top