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;
}