diff options
Diffstat (limited to 'cacheRows.c')
-rw-r--r-- | cacheRows.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/cacheRows.c b/cacheRows.c index c75be89..0111018 100644 --- a/cacheRows.c +++ b/cacheRows.c @@ -2,21 +2,24 @@ #include "inlineasm.h" #include <stdlib.h> -#define MEASURE_METHOD optmemmeasure -#define RUNS 10000 +#define MEASURE_METHOD memmeasure #define MIN_OFFSET 1 -#define MAX_OFFSET 512 +#define MAX_OFFSET 4096 #define OFFSETS (MAX_OFFSET - MIN_OFFSET) #define FIELD_TYPE uint8_t void measure(int offset,FIELD_TYPE *field){ + uint64_t *res = malloc(sizeof(uint64_t)*MAX_OFFSET); void *lowerAddress = field + offset; int i; + int a = field[0]; + + for(i=MAX_OFFSET;i >= MIN_OFFSET;i--){ + res[i] = MEASURE_METHOD(lowerAddress,res[i]*sizeof(FIELD_TYPE)); + } for(i=MIN_OFFSET;i <= MAX_OFFSET;i++){ - uint64_t time = MEASURE_METHOD(lowerAddress,i*sizeof(FIELD_TYPE)); - //if (time > 128 && time < 10000) - fprintf(stdout,"%d %lld \r\n",i,time); + fprintf(stdout,"%d %lld \r\n",i,res[i]); } } @@ -26,10 +29,7 @@ int main(int argc, char* argv[]) { FIELD_TYPE *field = malloc(sizeof(FIELD_TYPE)*(MAX_OFFSET+1)); int i=0; - //for(i=0;i < RUNS;i++){ - //fprintf(stdout,"RUN: %d \r\n",i); - measure(0,field); - //} + measure(0,field); return 0; |