对比执行时间实验ios
机器规格: CPU型号:Intel Core i7-366U;windows
CPU主频:2.0 GHz(最大睿频:3.2GHz);缓存
核心数: 双核心, 线程数:四线程;spa
RAM :8GB;操作系统
操做系统位数:64位。线程
在VS中编写代码以下:code
#include "stdafx.h" #include "iostream" #include "windows.h" #include "time.h" using namespace std; int src[2048][2048]; int dst[2048][2048]; SYSTEMTIME lpsystime; void copyij(int src[2048][2048], int dst[2048][2048]); void copyji(int src[2048][2048], int dst[2048][2048]); void printTime(); int _tmain(int argc, _TCHAR* argv[]) { printTime(); copyij(src,dst); printTime(); copyji(src, dst); printTime(); return 0; } void copyij(int src[2048][2048], int dst[2048][2048]){ int i, j; for (i = 0; i < 2048; i++) for (j = 0; j < 2048; j++) dst[i][j] = src[i][j]; } void copyji(int src[2048][2048], int dst[2048][2048]){ int i, j; for (j = 0; j < 2048; j++) for (i = 0; i < 2048; i++) dst[i][j] = src[i][j]; } void printTime(){ GetLocalTime(&lpsystime); printf("%u:%u:%u:%u\n", lpsystime.wHour, lpsystime.wMinute, lpsystime.wSecond, lpsystime.wMilliseconds); }
运行结果以下:blog
分析:io
由结果咱们能够计算出:先运行i后运行j的时间为16毫秒,先运行j后运行i的时间为203毫秒相差超过12倍。这个缘由主要是由于先运行i后运行j时每一行i都被都进了告诉缓存中,读取能够快速处理,而若是先运行j再运行i,则须要每处理一项向缓存中存储一次,这要就大大增长了程序的处理时间,进而产生了上面的结果。class