用c语言写一个内存带宽测试代码
时间: 2023-12-06 21:04:04 浏览: 281
以下是一个简单的内存带宽测试代码,使用C语言编写:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARR_SIZE 100000000 // 测试数组大小,单位为字节
int main()
{
int *arr;
clock_t start, end;
double elapsed_time, bandwidth;
arr = (int *)malloc(ARR_SIZE); // 分配测试数组内存
if (arr == NULL)
{
printf("Memory allocation error.\n");
return 1;
}
// 内存带宽测试
start = clock();
for (int i = 0; i < ARR_SIZE / sizeof(int); i++)
{
arr[i]++;
}
end = clock();
elapsed_time = (double)(end - start) / CLOCKS_PER_SEC; // 计算程序运行时间,单位为秒
bandwidth = (double)ARR_SIZE / elapsed_time; // 计算内存带宽,单位为字节/秒
printf("Elapsed time: %.6f seconds\n", elapsed_time);
printf("Bandwidth: %.2f bytes/second\n", bandwidth);
free(arr); // 释放测试数组内存
return 0;
}
该程序分配一个具有指定大小的数组,然后对该数组进行简单的遍历和自增操作。在操作完成后,程序计算程序运行时间和内存带宽,并输出结果。该程序不考虑CPU缓存等因素,仅用于简单的内存带宽测试。
阅读全文