/* ** Written by David Gerdes US Army Construction Engineering Research Lab ** April 1992 ** Copyright 1992 USA-CERL All rights reserved. ** */ /* ** This is a simple worst case performance comparison between linkm and malloc */ #include #include struct link { char let; struct link *next; }; /* #define LINKM */ int main(int argc, char *argv[]) { register int i; VOID_T *head; struct link List, *tmp, *p; int rev = 0; tmp = &List; #ifdef LINKM /* link_set_chunk_size (2000); */ head = (VOID_T *) link_init(sizeof(struct link)); #endif for (i = 0; i < 2000000; i++) { #ifdef LINKM p = (struct link *)link_new(head); #else p = (struct link *)malloc(sizeof(struct link)); #endif tmp->next = p; tmp = p; tmp->next = NULL; } for (p = List.next; p != NULL;) { tmp = p->next; #ifdef LINKM link_dispose(head, p); #else free(p); #endif p = tmp; } #ifdef LINKM link_cleanup(head); #endif exit(0); }