From 2c650b096b7040abb50ac3fb85b4c68a57a4b1e5 Mon Sep 17 00:00:00 2001 From: yves Date: Sat, 21 May 2011 12:55:43 +0200 Subject: new tries for cache row --- cacheRows.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/cacheRows.c b/cacheRows.c index 239c3c7..b784ee3 100644 --- a/cacheRows.c +++ b/cacheRows.c @@ -3,23 +3,31 @@ #include #define MEASURE_METHOD optmemmeasure -#define RUNS 1024 -#define FIELD_TYPE uint8_t +#define RUNS 1000 +#define MIN_OFFSET 1 +#define MAX_OFFSET 128 +#define OFFSETS = MAX_OFFSET - MIN_OFFSET +#define FIELD_TYPE uint32_t int main(int argc, char* argv[]) { - uint64_t *results = malloc(sizeof(uint64_t)*RUNS); - FIELD_TYPE *field = malloc(sizeof(FIELD_TYPE)*RUNS); + //uint64_t *results = malloc(sizeof(uint64_t)*RUNS*OFFSETS); + FIELD_TYPE *field = malloc(sizeof(FIELD_TYPE)*RUNS*OFFSETS); int i=0; - for(i=0;i <= RUNS;i++){ - MEASURE_METHOD(field,1); // reload cacheline - results[i] = MEASURE_METHOD(field,i*sizeof(FIELD_TYPE)); + measure(i*OFFSETS,field); } - for(i=0;i <= RUNS; i++){ - printf("%d %ld\r\n",i,results[i]); - } + return 0; } + +void measure(int offset,FIELD_TYPE *field){ + int lowerAddress = field + sizeof(FIELD_TYPE)*offset; + + for(i=MIN_OFFSET;i <= MAX_OFFSET;i++){ + unit64_t time = MEASURE_METHOD((void*)lowerAddress,i*sizeof(FIELD_TYPE)); + fprintf(stdout,"%d %lld",i,time); + } +} -- cgit v1.2.3-1-g7c22