CPU测速程序(1秒计算多少次)
2024-06-04 21:50:42
发布于:北京
这是一个CPU测试程序,可以测试CPU一秒运行多少次。(可以判定ACGO服务器)
旧版:
#include<bits/stdc++.h>
#include<time.h>
using namespace std;
int main() {
for(int i=0; i<3; i++) {
double sum=0,c=time(0);
while(time(0)<c+1) {
sum+=2;
}
cout<<"您的电脑一秒计算"<<sum<<"次"<<"(大约是"<<sum/100000000<<"亿次,"<<sum/10000<<"万次"<<sum/100000000000<<"万亿次)"<<endl;
}
return 0;
}
新版(正在内测中...):
#include <iostream>
#include <chrono>
#include <thread> // 添加头文件
using namespace std;
int main() {
auto start = chrono::high_resolution_clock::now();
long long sum = 0;
int n;
cout<<"请输入测量度(输入的越多越精确,时间就越长):";
cin>>n;
for (int i = 0; i < n; i++) { // 循环次数
sum += 2;
}
auto end = chrono::high_resolution_clock::now();
chrono::duration<double> elapsed = end - start;
double summ=n / elapsed.count();
cout<<"您的电脑一秒计算"<<summ<<"次"<<"(大约是"<<summ/100000000<<"亿次,"<<summ/10000<<"万次"<<summ/100000000000<<"万亿次)"<<endl;
// 延迟 1 秒
this_thread::sleep_for(chrono::milliseconds(1000));
// 再次测量
start = chrono::high_resolution_clock::now();
sum = 0;
for (int i = 0; i < n; i++) { // 循环次数
sum += 2;
}
end = chrono::high_resolution_clock::now();
elapsed = end - start;
summ = n / elapsed.count();
cout<<"您的电脑一秒计算"<<summ<<"次"<<"(大约是"<<summ/100000000<<"亿次,"<<summ/10000<<"万次"<<summ/100000000000<<"万亿次)"<<endl;
return 0;
}
注意,新代码如果在ACGO之类的平台运行,必须输入测量度,否则,就可能出现一万亿及以上的情况!
这个代码使用 chrono
库来精确测量时间。循环次数可以根据你的CPU性能进行调整,以获得更精确的测试结果。
这个代码可以用来测试CPU的性能,并判断ACGO服务器。
注意:
- 循环次数越多,测试结果越精确,但运行时间也会越长。
- 不同CPU的性能差异很大,所以测试结果只能作为参考。
- 为了获得更精确的测试结果,建议在不同的时间段内进行多次测试,并取平均值。
全部评论 5
有点不靠谱
2024-06-05 来自 广东
0cout<<"那确实,CPU的频率不是稳定的,甚至会有很大的偏差。";
2024-08-09 来自 北京
0
6
2024-05-28 来自 广东
0404万也出来了[哭笑]
2024-05-15 来自 浙江
0更新了一下算法,你用新版看看
2024-06-04 来自 北京
0
关键是每次都不一样,而且差很多,从1亿到9亿次都有
2024-05-15 来自 浙江
0确实有可能,可是如果再加上一个平均数就太慢了
2024-06-04 来自 北京
0他的计时也不一定准,我打算再改改
2024-06-04 来自 北京
0更新了一下算法,你用新版看看
2024-06-04 来自 北京
0
可以可以,拿acgo的在线IDE试了试。
2024-05-15 来自 浙江
0
有帮助,赞一个