Am I right in a way to measure CPU time consumed by a block of code?

W

www

Hi,

I want to measure the CPU time, not the "apparent" user time, consumed
by a block of code in my Java program. This Java program was translated
from Fortran program and now we want to do some bench mark to compare
with its original Fortran program, but we don't want to count those I/O
operations. We just want to focus on the block of code doing heavy duty
scientific computations. The command

time java MyJavaClassName

will give the user time and system time spent for the whole program from
beginning to the end.

I came a "silly" idea for measuring the system time used by the block of
code we are interested in by using "time" command:

for(int i=1; i<=20; i++)
{
//code for doing computation
}

Then

time java MyJavaClassName

The extra system time is due to 19 runs of computation. The extra system
time used divided it by 19 gives me the system time for a single
computation.

The result is that the system time used by Java code is even LESS than
the Fortran code. Is the result trustable? Or some kind of buffering
makes the number too small?

(Fortunately, there is a easy way in Fortran to measure the user time,
system time used by a block of code. like
http://infohost.nmt.edu/tcc/help/lang/fortran/elapsed.html)

Am I right? Thank you.
 
L

Lew

www said:
Hi,

I want to measure the CPU time, not the "apparent" user time, consumed
by a block of code in my Java program. This Java program was translated
from Fortran program and now we want to do some bench mark to compare
with its original Fortran program, but we don't want to count those I/O
operations. We just want to focus on the block of code doing heavy duty
scientific computations. The command

time java MyJavaClassName

will give the user time and system time spent for the whole program from
beginning to the end.

I came a "silly" idea for measuring the system time used by the block of
code we are interested in by using "time" command:

for(int i=1; i<=20; i++)
{
//code for doing computation
}

Then

time java MyJavaClassName

The extra system time is due to 19 runs of computation. The extra system
time used divided it by 19 gives me the system time for a single
computation.
Am I right? Thank you.

As pointed out in the other independent thread you started on this topic, "How
to measure the CPU time a program takes?", no.
 

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
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top