home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 642a.lha / huffman_v1.0 / speed.c < prev    next >
C/C++ Source or Header  |  1992-01-18  |  748b  |  46 lines

  1. /*
  2.  * speed.c - tests speed of pseudo-dynamic allocation
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <time.h>
  7.  
  8. #define MACRO 0
  9.  
  10. typedef struct node_ {
  11.   struct node_ *left, *right;
  12.   int c;
  13. } node;
  14.  
  15. #define MAX 10000
  16.  
  17. #define freenodes() avail = 0
  18. static node memory[MAX];
  19. static int avail = 0;
  20. #if MACRO
  21. #define mknode() (memory[avail].left = memory[avail].right = NULL, &memory[avail++])
  22. #else
  23. node *mknode (void)
  24. {
  25.  memory[avail].left = memory[avail].right = NULL;
  26.  return (&memory[avail++]);
  27. }
  28. #endif
  29.  
  30. main()
  31. {
  32.  int i, j;
  33.  node *p;
  34.  clock_t start, end;
  35.  
  36.  start = clock ();
  37.  for (j = 0; j < 100; j++)
  38.  {
  39.    for (i = 0; i < MAX; i++)
  40.      p = mknode ();
  41.    freenodes ();
  42.  }
  43.  end = clock ();
  44.  
  45.  printf ("%ld / %ld s\n", (long) (end - start), (long)CLK_TCK);
  46. }