Changeset 454 for trunk/src/t-test1.c


Ignore:
Timestamp:
Jun 29, 2014, 7:30:04 AM (10 years ago)
Author:
katerina
Message:

Fix for ticket #355 (use calloc instead of malloc).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/t-test1.c

    r229 r454  
    2727 * allocated bins per thread.
    2828 */
     29/*
     30  t-test[12] <n-total> <n-parallel> <n-allocs> <size-max> <bins>
     31
     32    n-total = total number of threads executed (default 10)
     33    n-parallel = number of threads running in parallel (2)
     34    n-allocs = number of malloc()'s / free()'s per thread (10000)
     35    size-max = max. size requested with malloc() in bytes (10000)
     36    bins = number of bins to maintain
     37*/
     38
    2939#if defined(HAVE_CONFIG_H)
    3040#include "config.h"
     
    5262
    5363#ifdef USE_SYSTEM_MALLOC
    54 #define memalign(a,b)  malloc(b)
     64extern void *memalign(size_t boundary, size_t size);
     65/* #define memalign(a,b)  malloc(b) */
    5566#else
    5667extern void *memalign(size_t boundary, size_t size);
     
    203214/* Allocate a bin with malloc(), realloc() or memalign().  r must be a
    204215   random number >= 1024. */
     216int n_malloc=0, n_memalign=0, n_realloc=0, n_calloc=0;
    205217
    206218static void
     
    219231                m->ptr = (unsigned char *)memalign(sizeof(int) << r, size);
    220232                /* fprintf(stderr, "FIXME memalign %p\n", m->ptr); */
     233                ++n_memalign;
    221234        } else if(r < 20) { /* calloc */
    222235                if(m->size > 0) free(m->ptr);
     
    232245                }
    233246#endif
     247                ++n_calloc;
    234248                /* fprintf(stderr, "FIXME calloc %p\n", m->ptr); */
    235249        } else if(r < 100 && m->size < REALLOC_MAX) { /* realloc */
     
    237251                m->ptr = realloc(m->ptr, size);
    238252                /* fprintf(stderr, "FIXME realloc %p\n", m->ptr); */
     253                ++n_realloc;
    239254        } else { /* plain malloc */
    240255                if(m->size > 0) free(m->ptr);
    241256                m->ptr = (unsigned char *)malloc(size);
    242257                /* fprintf(stderr, "FIXME malloc %p\n", m->ptr); */
     258                ++n_malloc;
    243259        }
    244260        if(!m->ptr) {
     
    540556                if (verbose)
    541557                  if(n_total%N_TOTAL_PRINT == 0)
    542                         printf("n_total = %d\n", n_total);
     558                        printf("n_total = %8d - malloc %12d / memalign %12d / realloc %12d / calloc %12d\n",
     559                                   n_total,
     560                                   n_malloc, n_memalign, n_realloc, n_calloc);
    543561               
    544562        }
     
    578596        printf("ptmalloc_init\n");
    579597#endif
     598
     599        if((argc > 1) && (0 == strcmp(argv[1], "-h") || 0 == strcmp(argv[1], "--help")))
     600          {
     601                printf("%s <n-total> <n-parallel> <n-allocs> <size-max> <bins>\n\n", argv[0]);
     602                printf(" n-total = total number of threads executed (default 10)\n");
     603                printf(" n-parallel = number of threads running in parallel (2)\n");
     604                printf(" n-allocs = number of malloc()'s / free()'s per thread (10000)\n");
     605                printf(" size-max = max. size requested with malloc() in bytes (10000)\n");
     606                printf(" bins = number of bins to maintain\n");
     607                return 0;
     608          }
    580609
    581610        if(argc > 1) n_total_max = atoi(argv[1]);
Note: See TracChangeset for help on using the changeset viewer.