Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
890 B
2
Indexable
Never
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>

#define N 10000000

int add(int a, int b) {
	return a + b;
}

int main() {
	struct timeval start_time, end_time;
	int i;
	float iters = N, total_time = 0;
	
	for (i = 0; i < iters; i++) {
		gettimeofday(&start_time, NULL);
		getpid();
		gettimeofday(&end_time, NULL);
		total_time += (end_time.tv_sec - start_time.tv_sec) * 1000000.0 + (end_time.tv_usec - start_time.tv_usec) * 1.0;
	}

	printf("System call overhead: %f microseconds\n", total_time / iters);

	total_time = 0;

	for (i = 0; i < iters; i++) {
		gettimeofday(&start_time, NULL);
		add(0, 1);
		gettimeofday(&end_time, NULL);
		total_time += (end_time.tv_sec - start_time.tv_sec) * 1000000.0 + (end_time.tv_usec - start_time.tv_usec) * 1.0;
	}

	printf("Procedure call overhead: %f microseconds\n", total_time / iters);
}