• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Finding Elapsed Time

 
Steve Dyke
Ranch Hand
Posts: 1644
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I need to find the elapsed mili seconds between the start of a procedure and its finish. I use this number to append to a file path so as to not diplicate file names. My code is here but I get a result of zero.

 
Jim Hoglund
Ranch Hand
Posts: 525
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I usually do it this way. Hope this helps.

Jim ... ...
 
Paul Clapham
Sheriff
Posts: 21322
32
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
So that tells you that the code took less than a millisecond to run.

This probably isn't surprising if you just timed a single run of a single method. You're running, let's say, a 1 gigahertz machine. That means it can execute 10^9 machine operations in a second. This is 10^6 -- one million -- machine operations in a millisecond. (Probably your machine is faster than that, but the arithmetic is harder.) So what you timed took less than one million machine operations.
 
Steve Dyke
Ranch Hand
Posts: 1644
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jim Hoglund wrote:I usually do it this way. Hope this helps.

Jim ... ...


This looks like it should work but I am still getting zero. The process runs very fast but surely there is some fraction of time difference.
 
Steve Dyke
Ranch Hand
Posts: 1644
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Paul Clapham wrote:So that tells you that the code took less than a millisecond to run.

This probably isn't surprising if you just timed a single run of a single method. You're running, let's say, a 1 gigahertz machine. That means it can execute 10^9 machine operations in a second. This is 10^6 -- one million -- machine operations in a millisecond. (Probably your machine is faster than that, but the arithmetic is harder.) So what you timed took less than one million machine operations.


Okay, that makes sense. So my altrernative is a timestamp but how can I get the result of the following to appear like a simple string?



Results: 2011-06-28 17:24:53.911

A simple replace?
 
Carey Brown
Bartender
Pie
Posts: 1637
22
Eclipse IDE Firefox Browser Java MySQL Database VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There may be a more elegant way, but here is what I have...

 
Jim Hoglund
Ranch Hand
Posts: 525
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
How about:
Jim ... ...
 
Rob Spoor
Sheriff
Pie
Posts: 20611
63
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Instead of new Date().getTime() use System.currentTimeMillis(). They return the same value without the need for a new Date object.
 
Campbell Ritchie
Sheriff
Pie
Posts: 49827
69
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
. . . or the System class method which returns time in nanoseconds. It's called something like nanoTime or getNanoTime.
 
Jim Hoglund
Ranch Hand
Posts: 525
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Excellent !
Jim ... ...
 
lokesh sree
Ranch Hand
Posts: 100
Eclipse IDE Hibernate Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Steve,

You can do the following..

long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;

And hope the code takes atleast nano seconds to execute..
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic