| #include <stdio.h> |
| #include <sys/time.h> |
| |
| extern void icache_test(long count, long step); |
| extern void icache_test2(long count); |
| |
| int main() |
| { |
| printf("[bytes]\t[us]\n"); |
| |
| struct timeval now, tm; |
| long long t; |
| long MBs; |
| long i; |
| long step = 32; |
| for (i=0 ; step<=2048 ; i++, step+=32) |
| { |
| long value; |
| gettimeofday(&now, 0); |
| icache_test(0x800000L, step); |
| gettimeofday(&tm, 0); |
| t = (tm.tv_sec*1000000LL+tm.tv_usec) - (now.tv_sec*1000000LL+now.tv_usec); |
| printf("%6ld\t%lld\n", step*32, t); |
| } |
| |
| gettimeofday(&now, 0); |
| icache_test2(0x800000L / 2048); |
| gettimeofday(&tm, 0); |
| t = (tm.tv_sec*1000000LL+tm.tv_usec) - (now.tv_sec*1000000LL+now.tv_usec); |
| MBs = (8388608LL*32*1000000) / (t * (1024*1024)); |
| printf("\n%6lld us\t%ld MB/s\n", t, MBs); |
| |
| return 0; |
| } |