Diff for /libelwix/example/rb.c between versions 1.1 and 1.2

version 1.1, 2013/01/17 10:05:35 version 1.2, 2024/01/22 15:24:28
Line 56  main() Line 56  main()
   
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         for (i = 0; i < 1000000; i++) {          for (i = 0; i < 1000000; i++) {
                b = malloc(sizeof(struct blah));                b = e_malloc(sizeof(struct blah));
                 memset(b, 0, sizeof(struct blah));                  memset(b, 0, sizeof(struct blah));
                 b->n = random();                  b->n = random();
                 if (RB_INSERT(rb_head, &rbh, b))                  if (RB_INSERT(rb_head, &rbh, b))
                        free(b);                        e_free(b);
         }          }
         gettimeofday(&after, NULL);          gettimeofday(&after, NULL);
         printf("RB::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);          printf("RB::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         for (i = 0; i < 1000000; i++) {          for (i = 0; i < 1000000; i++) {
                b = malloc(sizeof(struct blah));                b = e_malloc(sizeof(struct blah));
                 memset(b, 0, sizeof(struct blah));                  memset(b, 0, sizeof(struct blah));
                 b->n = random();                  b->n = random();
                 if (SPLAY_INSERT(sp_head, &sph, b))                  if (SPLAY_INSERT(sp_head, &sph, b))
                        free(b);                        e_free(b);
         }          }
         gettimeofday(&after, NULL);          gettimeofday(&after, NULL);
         printf("SP::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);          printf("SP::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);
   
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         for (i = 0; i < 1000000; i++) {          for (i = 0; i < 1000000; i++) {
                b = malloc(sizeof(struct blah));                b = e_malloc(sizeof(struct blah));
                 memset(b, 0, sizeof(struct blah));                  memset(b, 0, sizeof(struct blah));
                 b->n = random();                  b->n = random();
                 if (AVL_INSERT(avl_head, &avlh, b))                  if (AVL_INSERT(avl_head, &avlh, b))
                        free(b);                        e_free(b);
         }          }
         gettimeofday(&after, NULL);          gettimeofday(&after, NULL);
         printf("AVL::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);          printf("AVL::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);
   
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         for (i = 0; i < 1000000; i++) {          for (i = 0; i < 1000000; i++) {
                b = malloc(sizeof(struct blah));                b = e_malloc(sizeof(struct blah));
                 memset(b, 0, sizeof(struct blah));                  memset(b, 0, sizeof(struct blah));
                 b->n = random();                  b->n = random();
                 SLIST_INSERT_HEAD(&slh, b, node3);                  SLIST_INSERT_HEAD(&slh, b, node3);
Line 97  main() Line 97  main()
         printf("SLIST::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);          printf("SLIST::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         for (i = 0; i < 1000000; i++) {          for (i = 0; i < 1000000; i++) {
                b = malloc(sizeof(struct blah));                b = e_malloc(sizeof(struct blah));
                 memset(b, 0, sizeof(struct blah));                  memset(b, 0, sizeof(struct blah));
                 b->n = random();                  b->n = random();
                 TAILQ_INSERT_HEAD(&tqh, b, node4);                  TAILQ_INSERT_HEAD(&tqh, b, node4);
Line 107  main() Line 107  main()
   
         printf("---\n");          printf("---\n");
   
        b2 = malloc(sizeof(struct blah));        b2 = e_malloc(sizeof(struct blah));
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         for (i = 0; i < 10000; i++) {          for (i = 0; i < 10000; i++) {
                 memset(b2, 0, sizeof(struct blah));                  memset(b2, 0, sizeof(struct blah));
Line 149  main() Line 149  main()
   
         printf("---\n");          printf("---\n");
   
        free(b2);        e_free(b2);
   
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         while ((b = TAILQ_FIRST(&tqh))) {          while ((b = TAILQ_FIRST(&tqh))) {
                 TAILQ_REMOVE(&tqh, b, node4);                  TAILQ_REMOVE(&tqh, b, node4);
                free(b);                e_free(b);
         }          }
         gettimeofday(&after, NULL);          gettimeofday(&after, NULL);
         printf("TAILQ::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);          printf("TAILQ::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         while ((b = SLIST_FIRST(&slh))) {          while ((b = SLIST_FIRST(&slh))) {
                 SLIST_REMOVE(&slh, b, blah, node3);                  SLIST_REMOVE(&slh, b, blah, node3);
                free(b);                e_free(b);
         }          }
         gettimeofday(&after, NULL);          gettimeofday(&after, NULL);
         printf("SLIST::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);          printf("SLIST::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);
   
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         AVL_FOREACH_SAFE(b, avl_head, &avlh, b2) {          AVL_FOREACH_SAFE(b, avl_head, &avlh, b2) {
                 /*  
                 printf("aaa %p[%d] %p[%d] --- ", b, b ? b->n : 0, b2, b2 ? b2->n : 0);                  printf("aaa %p[%d] %p[%d] --- ", b, b ? b->n : 0, b2, b2 ? b2->n : 0);
                 printf("b:%p %p /// ", b ? AVL_LEFT(b, node2) : b, b ? AVL_RIGHT(b, node2) : b);                  printf("b:%p %p /// ", b ? AVL_LEFT(b, node2) : b, b ? AVL_RIGHT(b, node2) : b);
                 printf("b2:%p %p\n", b2 ? AVL_LEFT(b2, node2) : b2, b2 ? AVL_RIGHT(b2, node2) : b2); fflush(stdout);                  printf("b2:%p %p\n", b2 ? AVL_LEFT(b2, node2) : b2, b2 ? AVL_RIGHT(b2, node2) : b2); fflush(stdout);
                 */  
                 AVL_REMOVE(avl_head, &avlh, b);                  AVL_REMOVE(avl_head, &avlh, b);
                free(b);                e_free(b);
         }          }
         gettimeofday(&after, NULL);          gettimeofday(&after, NULL);
         printf("AVL::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);          printf("AVL::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);
Line 189  main() Line 187  main()
   
         gettimeofday(&before, NULL);          gettimeofday(&before, NULL);
         RB_FOREACH_SAFE(b, rb_head, &rbh, b2) {          RB_FOREACH_SAFE(b, rb_head, &rbh, b2) {
                   printf("aaa %p[%d] %p[%d] --- ", b, b ? b->n : 0, b2, b2 ? b2->n : 0);
                   printf("b:%p %p /// ", b ? RB_LEFT(b, node) : b, b ? RB_RIGHT(b, node) : b);
                   printf("b2:%p %p\n", b2 ? RB_LEFT(b2, node) : b2, b2 ? RB_RIGHT(b2, node) : b2); fflush(stdout);
                 RB_REMOVE(rb_head, &rbh, b);                  RB_REMOVE(rb_head, &rbh, b);
                free(b);                e_free(b);
         }          }
         gettimeofday(&after, NULL);          gettimeofday(&after, NULL);
         printf("RB::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);          printf("RB::Time %f\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1e6);

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>