mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
test/code: make it work again
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
6852f88e80
commit
82ae026f49
1 changed files with 21 additions and 19 deletions
40
test/code.c
40
test/code.c
|
|
@ -3,11 +3,7 @@
|
|||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sched.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#ifndef __builtin_expect
|
||||
#include <linux/compiler.h>
|
||||
#endif
|
||||
#include <time.h>
|
||||
|
||||
#define rdtscll(val) \
|
||||
__asm__ __volatile__("rdtsc" : "=A" (val))
|
||||
|
|
@ -72,21 +68,21 @@ static inline void atomic_add(volatile int *dst, int v)
|
|||
|
||||
static double detect_cpu_clock()
|
||||
{
|
||||
struct timeval tm_begin, tm_end;
|
||||
struct timespec tm_begin, tm_end;
|
||||
unsigned long long tsc_begin, tsc_end;
|
||||
|
||||
/* Warm cache */
|
||||
gettimeofday(&tm_begin, 0);
|
||||
clock_gettime(CLOCK_MONOTONIC, &tm_begin);
|
||||
|
||||
rdtscll(tsc_begin);
|
||||
gettimeofday(&tm_begin, 0);
|
||||
clock_gettime(CLOCK_MONOTONIC, &tm_begin);
|
||||
|
||||
usleep(1000000);
|
||||
|
||||
rdtscll(tsc_end);
|
||||
gettimeofday(&tm_end, 0);
|
||||
clock_gettime(CLOCK_MONOTONIC, &tm_end);
|
||||
|
||||
return (tsc_end - tsc_begin) / (tm_end.tv_sec - tm_begin.tv_sec + (tm_end.tv_usec - tm_begin.tv_usec) / 1e6);
|
||||
return (tsc_end - tsc_begin) / (tm_end.tv_sec - tm_begin.tv_sec + (tm_end.tv_nsec - tm_begin.tv_nsec) / 1e9);
|
||||
}
|
||||
|
||||
void mix_areas_srv(unsigned int size,
|
||||
|
|
@ -146,11 +142,17 @@ void mix_areas0(unsigned int size,
|
|||
}
|
||||
}
|
||||
|
||||
#define MIX_AREAS1 mix_areas1
|
||||
#define MIX_AREAS1_MMX mix_areas1_mmx
|
||||
#define MIX_AREAS_16 mix_areas1
|
||||
#define MIX_AREAS_16_MMX mix_areas1_mmx
|
||||
#define MIX_AREAS_32 mix_areas1_32
|
||||
#define MIX_AREAS_24 mix_areas1_24
|
||||
#define MIX_AREAS_24_CMOV mix_areas1_24_cmov
|
||||
#define XADD "addl"
|
||||
#define XSUB "subl"
|
||||
#include "../src/pcm/pcm_dmix_i386.h"
|
||||
#undef MIX_AREAS1
|
||||
#undef MIX_AREAS1_MMX
|
||||
static void *ptr_mix_areas1_32 __attribute__((unused)) = &mix_areas1_32;
|
||||
static void *ptr_mix_areas1_24 __attribute__((unused)) = &mix_areas1_24;
|
||||
static void *ptr_mix_areas1_24_cmov __attribute__((unused)) = &mix_areas1_24_cmov;
|
||||
|
||||
void mix_areas2(unsigned int size,
|
||||
volatile s16 *dst, const s16 *src,
|
||||
|
|
@ -319,11 +321,11 @@ int main(int argc, char **argv)
|
|||
|
||||
printf(" \r");
|
||||
printf("Summary (the best times):\n");
|
||||
printf("mix_areas_srv : %lld %f%%\n", diffS, 100*2*44100.0*diffS/(size*n*cpu_clock));
|
||||
printf("mix_areas0 : %lld %f%%\n", diff0, 100*2*44100.0*diff0/(size*n*cpu_clock));
|
||||
printf("mix_areas1 : %lld %f%%\n", diff1, 100*2*44100.0*diff1/(size*n*cpu_clock));
|
||||
printf("mix_areas1_mmx: %lld %f%%\n", diff1_mmx, 100*2*44100.0*diff1_mmx/(size*n*cpu_clock));
|
||||
printf("mix_areas2 : %lld %f%%\n", diff2, 100*2*44100.0*diff2/(size*n*cpu_clock));
|
||||
printf("mix_areas_srv : %8lld %f%%\n", diffS, 100*2*44100.0*diffS/(size*n*cpu_clock));
|
||||
printf("mix_areas0 : %8lld %f%%\n", diff0, 100*2*44100.0*diff0/(size*n*cpu_clock));
|
||||
printf("mix_areas1 : %8lld %f%%\n", diff1, 100*2*44100.0*diff1/(size*n*cpu_clock));
|
||||
printf("mix_areas1_mmx : %8lld %f%%\n", diff1_mmx, 100*2*44100.0*diff1_mmx/(size*n*cpu_clock));
|
||||
printf("mix_areas2 : %8lld %f%%\n", diff2, 100*2*44100.0*diff2/(size*n*cpu_clock));
|
||||
|
||||
printf("\n");
|
||||
printf("areas1/srv ratio : %f\n", (double)diff1 / diffS);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue