当前位置:网站首页>解决Intel12代酷睿CPU单线程调度问题(二)
解决Intel12代酷睿CPU单线程调度问题(二)
2022-07-06 09:29:00 【若苗瞬】
(一)前情回顾
1.1 十二代酷睿大小核和电源模式
参考《解决Intel12代酷睿CPU【小核载满,大核围观】的问题(WIN11)》。
主要问题是即便在Win11下,多线程程序会几乎都运行在小核上,大核空闲,导致效率很低。
解决办法是【电源模式】->【最佳性能】。
1.2 单线程程序问题
参考《解决Intel12代酷睿CPU单线程只给小核运行的问题》。
主要问题是即便设置了最佳性能,自己开发的早期单线程程序,还是会运行在小核上。
当时偶然发现挂一个监控程序,可以尽量的使用到大核。虽然不太理解也是这么做的。
(二)设置优先级(priority)
在上面问题的讨论中,有同学提到可以测试一下设置进程优先级,以及进程相关性。
如下图所示,这两项我们可以在【任务管理器】中,进程【详细信息】页右键菜单中进行设置。
经过测试,优先级挺有效,不再需要挂监控。
将进程优先级设置为【高】以后,测试了之前的一个耗时较长的单线程程序。
竟然比关闭小核还快100秒,如下图。
程序 | 8P + 0E | 8P8E性能 | 8P8E挂监控 | 8P8E高优先级 | 单位 |
---|---|---|---|---|---|
另一个单线程 | 1059 | 1367 | 1050 | 940 | 秒 |
而且设置优先级,是可以在自己程序中进行的。
通过CreateProcess()
加入HIGH_PRIORITY_CLASS
参数控制创建进程的优先级。
也可以SetThreadPriority()
在创建后设置优先级。
(三)设置相关性(affinity)
上面菜单中,优先级的下面一项就是相关性。
意思就是设置这个进程用哪些CPU逻辑处理器。
默认是都用,全选的。
测试中发现将最后8个小核心取消勾选后,确实也只会用大核了。
但问题是这个相关性设置,程序代码似乎无法实现。
稍微查了一下,除了上面鼠标点,似乎只可以通过下面的方式设置相关性:
- 通过批处理命令启动程序。
- 通过快捷方式启动程序。
- 通过第三方软件比如
Process Lasso
设置。
前面两种的命令格式:start /affinity 0x? app.exe
0x?
是按位设置用哪些逻辑CPU。app.exe
就是你想启动的程序。
(四)解决
我这里旧的单线程又很耗时的程序很少。
所以只需要在调度平台中,对这些程序【设置高优先级】就解决了效率问题。
至于【设置相关性】,怎么设置和不同CPU核心数量有关,又没有API可以调用,所以暂时先不考虑。
边栏推荐
- Opencv learning log 26 -- detect circular holes and mark them
- Configuration du cadre flask loguru log Library
- Codeforces Round #803 (Div. 2)A~C
- Educational Codeforces Round 130 (Rated for Div. 2)A~C
- Candy delivery (Mathematics)
- Codeforces - 1526C1&&C2 - Potions
- F - birthday cake (Shandong race)
- Programmers, what are your skills in code writing?
- 图图的学习笔记-进程
- (lightoj - 1370) Bi shoe and phi shoe (Euler function tabulation)
猜你喜欢
QWidget代码设置样式表探讨
(lightoj - 1323) billiard balls (thinking)
628. Maximum product of three numbers
Flask框架配置loguru日志庫
Remove the border when input is focused
Basic Q & A of introductory C language
1013. Divide the array into three parts equal to and
The "sneaky" new asteroid will pass the earth safely this week: how to watch it
1855. Maximum distance of subscript alignment
QT实现窗口置顶、置顶状态切换、多窗口置顶优先关系
随机推荐
Some problems encountered in installing pytorch in windows11 CONDA
Kubernetes cluster deployment
QT style settings of qcobobox controls (rounded corners, drop-down boxes, up expansion, editable, internal layout, etc.)
E. Breaking the Wall
Flag framework configures loguru logstore
Codeforces Round #802(Div. 2)A~D
The "sneaky" new asteroid will pass the earth safely this week: how to watch it
计算时间差
Install Jupiter notebook under Anaconda
本地可视化工具连接阿里云centOS服务器的redis
(lightoj - 1369) answering queries (thinking)
605. Planting flowers
QT模拟鼠标事件,实现点击双击移动拖拽等
原生js实现全选和反选的功能 --冯浩的博客
QT有关QCobobox控件的样式设置(圆角、下拉框,向上展开、可编辑、内部布局等)
Programmers, what are your skills in code writing?
树莓派4B安装opencv3.4.0
QT simulates mouse events and realizes clicking, double clicking, moving and dragging
C language is the watershed between low-level and high-level
Candy delivery (Mathematics)