/* ** Written by David Gerdes US Army Construction Engineering Research Lab ** April 1992 ** Copyright 1992 USA-CERL All rights reserved. ** */ /* ** This is a simple performance comparison between linkm and malloc ** I think it better simulates normal use of the library than ** speed.c or speed2.c */ #include #include struct link { char let; struct link *next; }; #define LINKM int main(int argc, char *argv[]) { register int i, j; VOID_T *head; struct link List, *tmp, *p; #ifdef LINKM head = (VOID_T *) link_init(sizeof(struct link)); #endif for (j = 0; j < 1000; j++) { tmp = &List; for (i = 0; i < 2000; 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); }