Visit Our UNIX and Linux User Community


Displaying elapsed time...


 
Thread Tools Search this Thread
Top Forums Programming Displaying elapsed time...
# 1  
Old 02-12-2002
Displaying elapsed time...

I am trying to display the amount of time that it took for a command to run. I'm assuming that i have the correct code:
Code:
     ...
        else
          {
             printf("I am a child process and my pid is %d\n", getpid());
             cout<<"Parameters are: "<<endl;
              for (int j=0; j<i; j++)
                  cout<<doit[j]<<endl;
             cout<<"       EXECUTE CHILD"<<endl;
             initial=time(&initial);
             execve(doit[0], doit, NULL);
             final=time(&final);
             exit(0);
          }
       cout<<"     KILL CHILD AND RETURN TO PARENT"<<endl;
       printf("I am still the parent process and my pid is %d\n",
         getpid());
       //float elapsed=final-initial;
       printf("It took %u seconds to execute that command.\n",
          (final-initial));
...

and in my output, i keep getting "It took you 34 seconds to execute...." and I KNOW that isnt right. I have tried using %U, %S, %ld in place of %u and it either doesnt work or give me some off the wall answer.
# 2  
Old 02-13-2002
I don't see a problem with the code you posted, but I'm guessing that you didn't declare "initial" and "final" to be ints. This works:
Code:
main()
{
      int one, two;
      one=time();
      sleep(3);
      two=time();
      printf("time = %d \n", (two-one));
      exit(0);
}

Also pick either "i=time();" or "time(&i)", it's silly to do both.
# 3  
Old 02-14-2002
including <sys/time.h> with initial and final as type time_t, I cant just declare initial=time(). I have to have arguments so &initial serves the purpose. I'm still getting crazy output for the number of seconds though *shrug* Oh well..I'll just keep playing with it by putting final=time(&final); in various spots before the execve command.
# 4  
Old 02-14-2002
I still suspect a mismatch with the printf format. Since you're using C++, why not try cout to print it out. I think:

cout << "Elapsed time " << (final-initial) << endl

will do it. But I'm not a C++ programmer.
# 5  
Old 02-20-2002
elasped time

I usually use clock() function, my code:

#include <stdio.h>
#include <time.h>

void main()
{
clock_t t1, t2;

t1 = clock();
... // your action
t2 = clock();

printf("\nFinished in %.2f seconds.\n\n", (t2-t1)*1.0/CLOCKS_PER_SEC);
}

t1 is the start time, t2 is the end time.
# 6  
Old 02-20-2002
By using time() we are getting total elapsed time between the start and finish of the program. If we switch to clock(), we get the cpu time used. For some programs these will be nearly the same thing. But put a:
sleep(60);
in a program and now there is a big difference. For 60 seconds the process will be sleeping waiting a signal. Those 60 seconds will not show up with clock() since the cpu is not being used. They will show up with time().

And clock() also counts cpu time used by child processes that have exited and been reaped via wait(). In a multiprocessor environment the clock() time could exceed the time() time.

Previous Thread | Next Thread
Test Your Knowledge in Computers #795
Difficulty: Easy
10 has three prime factors 1, 2 and 5.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calculatin cumulative elapsed time from mm:ss.ss data

Hello all, I got some time duration data like below and I want to compute the cumulative elapsed time. The data is in MM:SS.SS format. I got struck with logic on what to do when it changes from 59:59.ss to 00:00.ss. 59:59.4 59:59.6 59:59.9 00:00.1 00:00.4 00:00.6 00:00.9 I need the... (5 Replies)
Discussion started by: ks_reddy
5 Replies

2. UNIX for Advanced & Expert Users

Help in : sorting process by their elapsed time: HP-UX

What is the equivalent command of the below linux command would be in hp-ux UNIX95=1 ps -eo pid,start,stime,command Thanks a lot, (1 Reply)
Discussion started by: rveri
1 Replies

3. Shell Programming and Scripting

Compare two timestamps and print elapsed time

Hi, I am unable to Difference between two time stamps in Linux and display the total elapsed time . Source date: Aug 15, 2012 02:00:03 Target date: Aug 14, 2012 18:00:03 # based on the forums I am using the below function. Converted dates into this format Src_dt=20120814180003... (7 Replies)
Discussion started by: onesuri
7 Replies

4. Shell Programming and Scripting

Time elapsed since script started

Hi I want to know if there is anyway I can find out how long it has been since I started my script or total time it has been since my script is executing. Idea here is I want to check if my script is taking more than 30minutes to execute I want to kill that process. Thanks in advance. (1 Reply)
Discussion started by: dashing201
1 Replies

5. Shell Programming and Scripting

elapsed time

Display the elapsed time $ export data_ini = `date +'%s'`; echo $data_ini 1292417961 $ export data_final = `date +'%s'`; echo $data_final 1292418079 $ ((temps = data_final - data_ini)); echo $temps 118 $ echo $((data_final - data_ini)) #total seconds 118 $ echo $(((data_final... (1 Reply)
Discussion started by: aika
1 Replies

6. Shell Programming and Scripting

Elapsed time in seconds in awk

I am trying to get the ellapsed time in seconds in the body of the awk script. I use unix date to get the time. It works in BEGIN {} but not in the body {} of awk. Any ideas? $ cat a BEGIN { "date +%s" | getline x print x } { "date +%s" | getline y print y } $ echo "one line" |... (3 Replies)
Discussion started by: arturas123
3 Replies

7. Shell Programming and Scripting

Help on Time elapsed?

Hi All, I have 2 variables like SDATE and EDATE. Now for example i ll give you values for the above 2 variables. SDATE=11/08/09 11:22 EDATE=11/09/09 22:33 the values of the above variables are represented like this>>>>>> mm/dd/yy hh:mm Now I want to evaluate total time elapsed... (3 Replies)
Discussion started by: smarty86
3 Replies

8. Shell Programming and Scripting

Need to calculate elapsed time

Hi there, How to calculate the elapsed time in minutes for a particular job run under unix. I tried the following $ ps -efo user,pid,etime,comm,args | grep myscript | grep -v grep | awk -F" " '{print $3}' OUTPUT: 01:02:49 I need to get this output in minutes. Can someone help me... (1 Reply)
Discussion started by: karthickrn
1 Replies

9. Shell Programming and Scripting

Calculate Elapsed Time

I'm looking for the cleanest way to calculate the time elapsed between two times in KSH. In minutes or in hours and minutes if it has been longer than 59 minutes. Here are some random examples: Example result: 25 Minutes or Example result: 1 Hour and 25 Minutes Example time format: ... (5 Replies)
Discussion started by: sysera
5 Replies

10. Shell Programming and Scripting

Adding Elapsed time

I'm using the Bourne shell and trying to write a script that will add all the time that any particular user has been on the network for. I've used last-h | grep "username" | cut -c 58-62 to get the times. Then I wrote a script that takes the time and converts it into just minutes. Now I... (1 Reply)
Discussion started by: jrdnoland1
1 Replies

Featured Tech Videos