// When we cull and compute the new minimum time between snapshots, we want // to ignore any gap between two uncullable snapshots, because it is not // representative. This program tests that. #include <stdlib.h> int main(void) { int i; // The peak is from the first allocation. int* x = malloc(1024); free(x); // Now do an allocation to provide the post-peak baseline. malloc(512); // Now we do lots of allocations below the peak. With the proper // handling, the allocations should still be smoothly distributed. // Without it, the snapshots in the second half of the graph would be // clustered much more closely than those in the first half. // for (i = 0; i < 350; i++) { int* y = malloc(256); free(y); } return 0; }