How can I measure the execution time of my program locally?

How can i measure the execution time of my program locally?

Java

start = System.currentTimeMillis(); // Program Start

end = System.currentTimeMillis(); // Program End

System.out.println("\n\nTime taken to copy in milliseconds: " +(end - start));

1 Like

In unix, if your output file is called out.txt, you can get the execution time with the command time ./out.txt. Otherwise, you could just use functions from your programming language which measure the time at the start and end, and print out the difference.

If you use a newer compiler then you can use the following snippet

C++11 only

// Timing Code
#include <chrono>
typedef long long ll;

std::chrono::time_point<std::chrono::high_resolution_clock> start, end;
start = std::chrono::high_resolution_clock::now();
/*
Code goes here
*/
end = std::chrono::high_resolution_clock::now();
ll elapsed_time = std::chrono::duration_cast<std::chrono::milliseconds>(end-start).count();
cout << "\nElapsed Time: " << elapsed_time << "ms\n";
1 Like

This question has been asked and answered before. Please refer to this: http://discuss.codechef.com/questions/7129/time-taken-by-codes-to-run?page=1#7135

admin, please, there is no way this would work !!!

time in Unix shows the execution time of following command

time [command]

so for example if test is executable compiled for example from test.cpp, than one can use

time test > test.out
3 Likes

In general for all languages you can read up pages 17 to 24 of the following link:

Also for python:

import time

take all input here

t1 = time.perf_counter()
#insert code here
t2 = time.perf_counter()
print(t2-t1)

The above code returns the time. Ensure that t1 is defined right after taking input and t2 is initialised after all lines are run.

Here is a pythonic way :wink:

import time
start_time = time.time()
main()
print("--- %s seconds ---" % (time.time() - start_time))
1 Like