public version of crazy benchmarking
This commit is contained in:
parent
1b442ece82
commit
82a7050d07
43
Lib/foo.c
43
Lib/foo.c
@ -20,34 +20,53 @@
|
|||||||
\
|
\
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define SZPIC 7777
|
#define SZPIC 5777
|
||||||
|
|
||||||
double tthi_dtime(void);
|
double tthi_dtime(void);
|
||||||
|
|
||||||
void essai_pixcopy(void)
|
void essai_pixcopy(int usemacro)
|
||||||
{
|
{
|
||||||
Image_Desc *alice, *bob;
|
Image_Desc *alice, *bob;
|
||||||
int x, y;
|
int x, y, foo;
|
||||||
double T0, T1;
|
double T0, T1, perpix;
|
||||||
long count;
|
long count;
|
||||||
|
|
||||||
alice = Image_alloc(SZPIC, SZPIC, IMAGE_RGB);
|
alice = Image_alloc(SZPIC, SZPIC, IMAGE_RGB);
|
||||||
bob = Image_alloc(SZPIC, SZPIC, IMAGE_RGB);
|
bob = Image_alloc(SZPIC, SZPIC, IMAGE_RGB);
|
||||||
|
|
||||||
|
Image_pattern_000(alice, rand());
|
||||||
|
|
||||||
T0 = tthi_dtime();
|
T0 = tthi_dtime();
|
||||||
count = 0L;
|
count = 0L;
|
||||||
for (y=0; y<SZPIC; y++) {
|
|
||||||
for (x=0; x<SZPIC; x++) {
|
|
||||||
|
|
||||||
|
if (usemacro) {
|
||||||
|
for (y=0; y<SZPIC; y++) {
|
||||||
|
for (x=0; x<SZPIC; x++) {
|
||||||
|
PIXEL_COPY(alice, x, y, bob, x, y);
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (y=0; y<SZPIC; y++) {
|
||||||
|
for (x=0; x<SZPIC; x++) {
|
||||||
Image_pixel_copy(alice, x, y, bob, x, y);
|
Image_pixel_copy(alice, x, y, bob, x, y);
|
||||||
count++;
|
count++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
T1 = tthi_dtime();
|
T1 = tthi_dtime();
|
||||||
|
|
||||||
fprintf(stderr, "count %ld, elapsed %g\n", count, T1-T0);
|
foo = Image_TGA_save("bob.tga", bob, 0);
|
||||||
|
if (foo) {
|
||||||
|
fprintf(stderr, "%s: save -> %d\n", __func__, foo);
|
||||||
|
}
|
||||||
|
|
||||||
|
perpix = (T1-T0) / (double)count;
|
||||||
|
fprintf(stderr, "%s : %10ld pixels, elapsed %9.6f seconds ==> %5.3g µs/ppix\n",
|
||||||
|
usemacro ? "macro" : "func ",
|
||||||
|
count, T1-T0, perpix);
|
||||||
|
|
||||||
/* end */
|
/* end */
|
||||||
}
|
}
|
||||||
@ -56,8 +75,9 @@ fprintf(stderr, "count %ld, elapsed %g\n", count, T1-T0);
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
fprintf(stderr, "*** %s is running\n", argv[0]);
|
fprintf(stderr, "******** %s is running *********\n", argv[0]);
|
||||||
|
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
fprintf(stderr, "argument: %s\n", argv[1]);
|
fprintf(stderr, "argument: %s\n", argv[1]);
|
||||||
@ -65,7 +85,10 @@ if (argc > 1) {
|
|||||||
Image_print_sizeof_structs("foo");
|
Image_print_sizeof_structs("foo");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
essai_pixcopy();
|
for (i=0; i<5; i++) {
|
||||||
|
essai_pixcopy(0);
|
||||||
|
essai_pixcopy(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user