1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// When we cull and compute the new minimum time between snapshots, we want 2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// to ignore any gap between two uncullable snapshots, because it is not 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// representative. This program tests that. 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdlib.h> 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main(void) 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown int i; 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // The peak is from the first allocation. 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown int* x = malloc(1024); 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown free(x); 15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // Now do an allocation to provide the post-peak baseline. 17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown malloc(512); 18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // Now we do lots of allocations below the peak. With the proper 20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // handling, the allocations should still be smoothly distributed. 21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // Without it, the snapshots in the second half of the graph would be 22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // clustered much more closely than those in the first half. 23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // 24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown for (i = 0; i < 350; i++) { 26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown int* y = malloc(256); 27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown free(y); 28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown } 29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown return 0; 31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 32