Author: Dieter Buerssner
Date: 14:56:39 07/06/03
Go up one level in this thread
Forgot the boring source code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N_ITERATIONS 1000000000
#if __GNUC__
#define MY_INLINE __inline__
#define NOOP() __asm__ volatile("xorl %eax, %eax")
#else
#define MY_INLINE __forceinline
#define NOOP() _asm {xor eax, eax}
#endif
#define SEED(n) srand(n)
#define DECLARE_TEST_FUNC(name) \
void tfunc_##name(void) \
{ \
unsigned long n=N_ITERATIONS; \
do \
{ \
name(); \
} while (--n != 0); \
}
MY_INLINE void randnoop0(void)
{
rand();
}
DECLARE_TEST_FUNC(randnoop0)
/* All will repeat fron now, just add NOOPs */
MY_INLINE void randnoop1(void)
{
rand();
NOOP();
}
DECLARE_TEST_FUNC(randnoop1)
MY_INLINE void randnoop2(void)
{
rand();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop2)
MY_INLINE void randnoop3(void)
{
rand();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop3)
MY_INLINE void randnoop4(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop4)
MY_INLINE void randnoop5(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop5)
MY_INLINE void randnoop6(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop6)
MY_INLINE void randnoop7(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop7)
MY_INLINE void randnoop8(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop8)
MY_INLINE void randnoop9(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop9)
MY_INLINE void randnoop10(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop10)
MY_INLINE void randnoop11(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop11)
MY_INLINE void randnoop12(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop12)
MY_INLINE void randnoop13(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop13)
MY_INLINE void randnoop14(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop14)
MY_INLINE void randnoop15(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop15)
MY_INLINE void randnoop16(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop16)
MY_INLINE void randnoop17(void)
{
rand();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
NOOP();
}
DECLARE_TEST_FUNC(randnoop17)
void time_func(void (*test_function)(void), const char *name);
#define TIME_FUNCTION(name) time_func(tfunc_##name, #name)
int main (void)
{
TIME_FUNCTION(randnoop0);
TIME_FUNCTION(randnoop1);
TIME_FUNCTION(randnoop2);
TIME_FUNCTION(randnoop3);
TIME_FUNCTION(randnoop4);
TIME_FUNCTION(randnoop5);
TIME_FUNCTION(randnoop6);
TIME_FUNCTION(randnoop7);
TIME_FUNCTION(randnoop8);
TIME_FUNCTION(randnoop9);
TIME_FUNCTION(randnoop10);
TIME_FUNCTION(randnoop11);
TIME_FUNCTION(randnoop12);
TIME_FUNCTION(randnoop13);
TIME_FUNCTION(randnoop14);
TIME_FUNCTION(randnoop15);
TIME_FUNCTION(randnoop16);
TIME_FUNCTION(randnoop17);
return 0;
}
void time_func(void (*test_function)(void), const char *name)
{
clock_t clk;
SEED(0);
clk = clock();
test_function();
clk = clock() - clk;
printf("%14s %.3f\n", name, (double)clk / CLOCKS_PER_SEC);
}
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.