1.程序:
#include<cstdio>
#include<cstdlib>
#include<sys/time.h>
#include<sys/resource.h>
// 从进行开始执行到完成所经历的墙上时钟时间(wall clock)时间,
// 包括其他进程使用的时间片(time slice)和本进程耗费在阻塞(如等待I/O操作完成)上的时间
// CPU时间是指进程占用CPU的时间,进程阻塞的时间则不会计入CPU时间
void gettime(double *cpu)
{
struct rusage ru;
if(cpu != NULL)
{
getrusage(RUSAGE_SELF, &ru);
*cpu = ru.ru_utime.tv_sec + (double)ru.ru_utime.tv_usec * 1e-6;
}
}
int main(int argc,char* argv[])
{
int count = 20000;
double cpu0,cpu1,cpu2;
int* arr = (int*)malloc(sizeof(int) * count * count);
int i,j;
gettime(&cpu0);
// 按行遍历二维数组
for(i=0;i<count;i++)
{
for(j=0;j<count;j++)
{
arr[i * count + j]=1;
//printf("%d-%d ",i,j);
}
}
// printf("\n");
gettime(&