This is C source code written in Gcc platform (Linux, Ubuntu) that finds the compilation time of any other source code (e.g. C, C++, Java & others). It also finds the execution time of any command of Ubuntu in three time units: nanosecond, microsecond and millisecond.
Note: If you want to find the compilation time of a piece of Java source code using this C source code, the Java compiler must be installed in the machine.
#include <sys/time.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
int main()
{
struct timespec ts1;
struct timespec ts2;
char str[20];
printf("\n\tCompile the code/ Execute the Commamnd: ");
fgets(str, sizeof str, stdin);
clock_gettime(CLOCK_REALTIME, &ts1);
system (str);
clock_gettime(CLOCK_REALTIME, &ts2);
if (ts2.tv_nsec {
ts2.tv_nsec= ts2.tv_nsec+ pow(10,9);
printf("\n\tCompilation time:\n\tNanosecond: %ld\n\tMicrosecond: %ld\n\tMillisecond: %ld\n", (ts2.tv_nsec - ts1.tv_nsec), (ts2.tv_nsec - ts1.tv_nsec)/1000, (ts2.tv_nsec - ts1.tv_nsec)/1000000);
}
else
printf("\n\tCompilation time:\n\tNanosecond: %ld\n\tMicrosecond: %ld\n\tMillisecond: %ld\n", (ts2.tv_nsec - ts1.tv_nsec), (ts2.tv_nsec - ts1.tv_nsec)/1000, (ts2.tv_nsec - ts1.tv_nsec)/1000000);
return 0;
}