tal: fix up benchmarks for interface changes.
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 4 Sep 2017 04:36:46 +0000 (14:06 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 4 Sep 2017 04:36:46 +0000 (14:06 +0930)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan/tal/benchmark/samba-allocs.c
ccan/tal/benchmark/speed.c

index e25c7e9b69163996c96ad22081307ad24b729355..f2259a4e3d54fc41655a73dc8cd3cebd48058895 100644 (file)
@@ -10,6 +10,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 #include <fcntl.h>
+#include <inttypes.h>
 
 struct node {
        void *n;
@@ -185,7 +186,7 @@ static void do_tals(struct node *node)
                                  char, node->len);
        else
                node->n = tal_alloc_(node->parent ? node->parent->n : NULL,
-                                    node->len, false, TAL_LABEL(type, ""));
+                                    node->len, false, false, TAL_LABEL(type, ""));
 
        if (node->destructor)
                tal_add_destructor(node->n, unused_tal_destructor);
@@ -253,7 +254,8 @@ static void dump_vsize(void)
 
 int main(int argc, char *argv[])
 {
-       struct timespec start, alloc_time, free_time;
+       struct timeabs start;
+       struct timerel alloc_time, free_time;
        struct node *root;
        unsigned int i;
        FILE *f;
@@ -288,83 +290,91 @@ int main(int argc, char *argv[])
        if (!run_malloc)
                goto after_malloc;
 
-       alloc_time.tv_sec = alloc_time.tv_nsec = 0;
-       free_time.tv_sec = free_time.tv_nsec = 0;
+       alloc_time.ts.tv_sec = alloc_time.ts.tv_nsec = 0;
+       free_time.ts.tv_sec = free_time.ts.tv_nsec = 0;
        for (i = 0; i < LOOPS; i++) {
                start = time_now();
                do_mallocs(root);
-               alloc_time = time_add(alloc_time, time_sub(time_now(), start));
+               alloc_time = timerel_add(alloc_time,
+                                        time_between(time_now(), start));
 
                start = time_now();
                free_mallocs(root);
-               free_time = time_add(free_time, time_sub(time_now(), start));
+               free_time = timerel_add(free_time,
+                                       time_between(time_now(), start));
        }
        alloc_time = time_divide(alloc_time, i);
        free_time = time_divide(free_time, i);
-       printf("Malloc time:             %lluns\n", time_to_nsec(alloc_time));
-       printf("Free time:               %lluns\n", time_to_nsec(free_time));
+       printf("Malloc time:             %"PRIu64"ns\n", time_to_nsec(alloc_time));
+       printf("Free time:               %"PRIu64"ns\n", time_to_nsec(free_time));
 
 after_malloc:
        if (!run_talloc)
                goto after_talloc;
 
-       alloc_time.tv_sec = alloc_time.tv_nsec = 0;
-       free_time.tv_sec = free_time.tv_nsec = 0;
+       alloc_time.ts.tv_sec = alloc_time.ts.tv_nsec = 0;
+       free_time.ts.tv_sec = free_time.ts.tv_nsec = 0;
        for (i = 0; i < LOOPS; i++) {
                start = time_now();
                do_tallocs(root);
-               alloc_time = time_add(alloc_time, time_sub(time_now(), start));
+               alloc_time = timerel_add(alloc_time,
+                                        time_between(time_now(), start));
 
                start = time_now();
                free_tallocs(root);
-               free_time = time_add(free_time, time_sub(time_now(), start));
+               free_time = timerel_add(free_time,
+                                       time_between(time_now(), start));
        }
        alloc_time = time_divide(alloc_time, i);
        free_time = time_divide(free_time, i);
-       printf("Talloc time:             %lluns\n", time_to_nsec(alloc_time));
-       printf("talloc_free time:        %lluns\n", time_to_nsec(free_time));
+       printf("Talloc time:             %"PRIu64"ns\n", time_to_nsec(alloc_time));
+       printf("talloc_free time:        %"PRIu64"ns\n", time_to_nsec(free_time));
 
-       free_time.tv_sec = free_time.tv_nsec = 0;
+       free_time.ts.tv_sec = free_time.ts.tv_nsec = 0;
        for (i = 0; i < LOOPS; i++) {
                do_tallocs(root);
 
                start = time_now();
                talloc_free(root->n);
-               free_time = time_add(free_time, time_sub(time_now(), start));
+               free_time = timerel_add(free_time,
+                                       time_between(time_now(), start));
        }
        free_time = time_divide(free_time, i);
-       printf("Single talloc_free time: %lluns\n", time_to_nsec(free_time));
+       printf("Single talloc_free time: %"PRIu64"\n", time_to_nsec(free_time));
 
 after_talloc:
        if (!run_tal)
                goto after_tal;
 
-       alloc_time.tv_sec = alloc_time.tv_nsec = 0;
-       free_time.tv_sec = free_time.tv_nsec = 0;
+       alloc_time.ts.tv_sec = alloc_time.ts.tv_nsec = 0;
+       free_time.ts.tv_sec = free_time.ts.tv_nsec = 0;
        for (i = 0; i < LOOPS; i++) {
                start = time_now();
                do_tals(root);
-               alloc_time = time_add(alloc_time, time_sub(time_now(), start));
+               alloc_time = timerel_add(alloc_time,
+                                        time_between(time_now(), start));
 
                start = time_now();
                free_tals(root);
-               free_time = time_add(free_time, time_sub(time_now(), start));
+               free_time = timerel_add(free_time,
+                                       time_between(time_now(), start));
        }
        alloc_time = time_divide(alloc_time, i);
        free_time = time_divide(free_time, i);
-       printf("Tal time:                %lluns\n", time_to_nsec(alloc_time));
-       printf("Tal_free time:           %lluns\n", time_to_nsec(free_time));
+       printf("Tal time:                %"PRIu64"ns\n", time_to_nsec(alloc_time));
+       printf("Tal_free time:           %"PRIu64"ns\n", time_to_nsec(free_time));
 
-       free_time.tv_sec = free_time.tv_nsec = 0;
+       free_time.ts.tv_sec = free_time.ts.tv_nsec = 0;
        for (i = 0; i < LOOPS; i++) {
                do_tals(root);
 
                start = time_now();
                tal_free(root->n);
-               free_time = time_add(free_time, time_sub(time_now(), start));
+               free_time = timerel_add(free_time,
+                                       time_between(time_now(), start));
        }
        free_time = time_divide(free_time, i);
-       printf("Single tal_free time:    %lluns\n", time_to_nsec(free_time));
+       printf("Single tal_free time:    %"PRIu64"ns\n", time_to_nsec(free_time));
 after_tal:
 
        return 0;
index 0b5b246f2dc3b1ffac261b61bf1990b3a2474703..fd2d9cc71314570569a2e242160a4a698796c857 100644 (file)
@@ -36,7 +36,7 @@ int main(int argc, char *argv[])
        void *ctx;
        unsigned count;
        int i, j;
-       struct timespec tv;
+       struct timeabs tv;
        void *p1, *p2[100], *p3[100];
        bool run_talloc = true, run_tal = true, run_malloc = true;
 
@@ -67,7 +67,7 @@ int main(int argc, char *argv[])
                        talloc_free(p1);
                }
                count += (1 + 200) * LOOPS;
-       } while (time_sub(time_now(), tv).tv_sec < 5);
+       } while (time_between(time_now(), tv).ts.tv_sec < 5);
 
        fprintf(stderr, "talloc: %.0f ops/sec\n", count/5.0);
 
@@ -90,7 +90,7 @@ after_talloc:
                        tal_free(p1);
                }
                count += (1 + 200) * LOOPS;
-       } while (time_sub(time_now(), tv).tv_sec < 5);
+       } while (time_between(time_now(), tv).ts.tv_sec < 5);
        fprintf(stderr, "tal:    %.0f ops/sec\n", count/5.0);
 
        tal_free(ctx);
@@ -115,7 +115,7 @@ after_tal:
                        free(p1);
                }
                count += (1 + 200) * LOOPS;
-       } while (time_sub(time_now(), tv).tv_sec < 5);
+       } while (time_between(time_now(), tv).ts.tv_sec < 5);
        fprintf(stderr, "malloc: %.0f ops/sec\n", count/5.0);
 
 after_malloc: