数据结构内存管理c++实现(五)

2014-04-06 17:35:10 · 作者: · 浏览: 336

 

  void* p = malloc(sizeof(int));

  if(p)

  free(p);

  }

  end = (clock() - start) / (double)CLOCKS_PER_SEC;

  /*start = clock();

  for(int i = 0; i < times; ++i)

  {

  apr_memnode_t* p = apr_allocator_alloc(allocator, rrand(sizeof(int), 8192 * 2));

  if(p)

  apr_allocator_free(allocator, p);

  }

  end = (clock() - start) / (double)CLOCKS_PER_SEC;*/

  printf("malloc/free random size %d times, use %lf seconds\n", times, end[0]);

  printf("mempool allocate/deallocte random size %d times, use %lf seconds\n", times, end );

  printf("malloc/free fixed size %d times, use %lf seconds\n", times, end );

  //printf("apr alloc/free random size %d times, use %lf seconds\n", times, end );

  /* result at win32 release:

  malloc/free random size 1000000 times, use 7.251000 seconds

  mempool allocate/deallocte random size 1000000 times, use 0.031000 seconds

  malloc/free fixed size 1000000 times, use 0.360000 seconds

  apr alloc/free random size 1000000 times, use 0.031000 seconds

  */

  /* result at linux release

  malloc/free random size 1000000 times, use 0.070000 seconds

  mempool allocate/deallocte random size 1000000 times, use 0.030000 seconds

  malloc/free fixed size 1000000 times, use 0.040000 seconds

  apr alloc/free random size 1000000 times, use 0.040000 seconds

  */

  #ifdef _WIN32

  system("pause");

  #endif

  return 0;

  }