다양한 저장매체의 속도를 측정
?1. Cache? main memory? ?? ??:
Array? data? access?? ??? ?? ?????.
Array? ???? ????? ??? ??, Array? data? access? ? ?? ???? cache? ???? ??? array ???? ??? ?? cache? ??? ?? access ??. ??? ????? ??? ? ?? cache? ??? ?? ??? ??? main memory? access?? ??.
?
windows ??
?
Code#include?<stdio.h>
#include?<time.h>
#include?<windows.h>
#define?SIZE?10000
#define?CHECK_TIME_START?QueryPerformanceFrequency?((_LARGE_INTEGER*)&freq);?QueryPerformanceCounter((_LARGE_INTEGER*)&start)
#define?CHECK_TIME_END(a)?QueryPerformanceCounter((_LARGE_INTEGER*)&end);?a=(float)((float)?(end?-?start)/freq)
int?a[SIZE][SIZE];
void?main()?{
????__int64?start,?freq,?end;
????float?resultTime=0;
????printf("??\n");
????CHECK_TIME_START;??
??
????for(int?i=0;i<SIZE;i++){
????????for(int?j=0;j<SIZE;j++){
????????????a[j][i]?=?0;
????????}?
????}
????CHECK_TIME_END(resultTime);
????printf("??%f?",resultTime);
????CHECK_TIME_START;??
????
????
????for(int?i=0;i<SIZE;i++){
????????for(int?j=0;j<SIZE;j++){
????????????a[i][j]?=?0;
????????}?
????}
????CHECK_TIME_END(resultTime);
????printf("??%f?",resultTime);
}
?
???? ??:
?
Code?#include?<stdio.h>
//#include?<time.h>
//#include?<windows.h>
#include?<sys/time.h>
#define?SIZE?10000
long?timecacul?()?{
????????struct?timeval?tv;
????????struct?timezone?tz;
????????gettimeofday(&tv,&tz);
????????return?(tv.tv_sec?*?1000?+?tv.tv_usec?/?1000);
}
int?a[SIZE][SIZE];
void?main()?{
????
????long?starttime,?endtime,?resultTime;
????int?i,?j;
????printf("??\n");
??????starttime?=?timecacul?();
????for(i=0;i<SIZE;i++){
????????for(j=0;j<SIZE;j++){
????????????a[j][i]?=?0;
????????}?
????}
????endtime?=?timecacul?();
????resultTime?=?endtime?-starttime;
????printf("??%ld?",resultTime);
??????starttime?=?timecacul?();
????
????
????for(i=0;i<SIZE;i++){
????????for(j=0;j<SIZE;j++){
????????????a[i][j]?=?1;
????????}?
????}
????endtime?=?timecacul?();
????resultTime?=?endtime?-starttime;
????printf("??%ld?",resultTime);
}
?
?? ?? ??
10000 x 10000? ??? 0? ?? ??? ????. ? ?? ???? ???, ?? for loop ??? ???? ?????? 0? ?? ??(a[j][i] = 0;) ??? for loop??? ???? ????? 0? ?? ?? (a[i][j] = 0;).
?
Ubuntu9.10?? ?? ??:
?
rize@rize-laptop:~/end$ ./os
??
? 5334 ? 414
?
2. main memory ? Magnetic disk? ?? ??:
Sqlite??? ?? ???? ?? ????? ??? ?? ????.
?
?
?
?
轉載于:https://www.cnblogs.com/jinrize/archive/2009/11/23/1608570.html
總結
以上是生活随笔為你收集整理的다양한 저장매체의 속도를 측정的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【0805作业】模拟多人爬山
- 下一篇: [VMM 2008虚拟化之初体验-2]