多核CPU利用测试
来源:互联网 发布:win7注册表卸载软件 编辑:程序博客网 时间:2024/06/09 16:49
一直在想程序上是否特意让线程在指定的CPU上去运行,这样可以提高运行效率,所以特地写个代码让CPU使用率画正弦曲线的实验,我使用的是AMD X4 641的CPU,为四核四线程的片子。
代码如下
#include "stdafx.h"#include <iostream>#include <cmath>#include <ctime>#include <windows.h>using namespace std;//得到循环0xFFFFFFFF次用的秒数unsigned int test(){ unsigned int c = 0xFFFFFFFF; time_t t1, t2; time(&t1); for(unsigned int i = 0; i < c; i++) ; time(&t2); return (unsigned int)(t2 -t1);}#define T 20000 //周期时间 20秒#define C 100 //采样点时间间隔#define PI 3.1415 //PIconst unsigned int count = 0xFFFFFFFF / (test() *1000); //采样间隔可以执行的循环数目const unsigned int N = T/C; //周期内采样点数目unsigned int v[N] = { 0 }; //所有采样点连续执行循环数unsigned int mt[N] = { 0 }; //所有采样点休眠毫秒数int main(){ //指定运行CPU SetThreadAffinityMask(GetCurrentThread(), 3);
for(int i = 0; i < N; i++) { double x = 2 * PI * i / N; double r = (sin(x) + 1) / 2; mt[i] = C - r * C; v[i] = r * C * count; } for(;;) { for(int i = 0; i < N; i++) { for(int j = 0; j < v[i]; j++) ; Sleep(mt[i]); } }}
不指定CPU,发现,貌似系统会平分一下到第一和第二个CPU的使用
指定在第一个CPU上运行的话,效果如下:
指定运行在第二个CPU上,效果如下:
指定在第三个CPU上运行,效果如下:
指定在第四个CPU上运行的话,效果如下:
如果指定的话,那么会固定使用那个指定的CPU,但是有一点比较纳闷的,指定运行在第一个和第二个上没问题,指定运行在第三个上,不知道运行在哪个上了,而指定运行在第4个上,却运行第3个CPU上,难道是我的CPU有问题,明明是四核四线程的CPU,为什么指定在第3个上,没效果,而指定在第四个上却运行在第3个上呢。
这是AMD的CPU的测试结果,不知道Intel的CPU上是不是一样的效果。
我想换个intel的八核十六线程的CPU,感觉现在这个四核四线程的应付不过来平时的工作了。
等换了八核十六线程的片子以后,再做下测试。
0 0
- 多核CPU利用测试
- 多核CPU利用测试
- 利用CPU多核处理
- Python怎么利用多核cpu
- python利用多核CPU实现mapreduce
- odoo 8.0 多核启用,python多核心利用测试
- 多核CPU
- 多核CPU
- Twisted提供的利用多核CPU的假象
- java利用FutureTask、ExecutorService 在多核时代充分利用CPU运算
- Nging利用多核cpu提高性能_配置参数worker_cpu_affinity
- java利用FutureTask、ExecutorService 在多核时代充分利用CPU运算
- 如何利用多核CPU来加速你的Linux命令
- 如何利用多核CPU来加速你的Linux命令
- java利用FutureTask、ExecutorService 在多核时代充分利用CPU运算
- eventlet引发的学习-python如何利用多核CPU
- python 多线程编程并不能真正利用多核的CPU
- cpu 多核/多cpu
- (laravel框架)为分页添加小功能:用下拉框设置每页显示的条数
- 对芯片总线接口分类记录
- 程序员面试经典--链表节点查找
- 闭包
- 关于项目开发心得
- 多核CPU利用测试
- 【玲珑 OJ 1067 Digital Count】+ 数位 dp
- 如何控制table大小
- Python:用Python生成激活码
- React Native 第三方库下载失败 no such file or directory open ...
- Yarn包管理工具使用总结
- Java并发编程——Condition接口
- notepad++ 怎么给单行字体设置格式颜色
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用注意点