shithub: sysbench

ref: 721724916347c46df7cfa3105ac6fd1f6da652ed
dir: /fcall.c/

View raw version
#include <u.h>
#include <libc.h>

#include "bench.h"

void
f0(void)
{
}

void
f1(int)
{
}

void
f4(int, int, int, int)
{
}

void
f16(int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int)
{
}

void
fcall0(B *b)
{
	int i;
	for(i = 0; i < b->N; i++)
		f0();
}
void
fcall1(B *b)
{
	int i;
	for(i = 0; i < b->N; i++)
		f1(i);
}

void
fcall4(B *b)
{
	int i;
	for(i = 0; i < b->N; i++)
		f4(i, i, i, i);
}

void
fcall16(B *b)
{
	int i;
	for(i = 0; i < b->N; i++)
		f16(i, i, i, i, i, i, i, i, i, i, i, i, i, i, i, i);
}

void
main(int argc, char **argv)
{
	benchinit(argc, argv);

	print("== function call overhead ==\n");
	BM(fcall0);
	BM(fcall1);
	BM(fcall4);
	BM(fcall16);
	exits(nil);
}