当前位置:网站首页>解决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.exe0x? 是按位设置用哪些逻辑CPU。app.exe 就是你想启动的程序。
(四)解决
我这里旧的单线程又很耗时的程序很少。
所以只需要在调度平台中,对这些程序【设置高优先级】就解决了效率问题。
至于【设置相关性】,怎么设置和不同CPU核心数量有关,又没有API可以调用,所以暂时先不考虑。
边栏推荐
- E. Breaking the Wall
- QWidget代码设置样式表探讨
- 软通乐学-js求字符串中字符串当中那个字符出现的次数多 -冯浩的博客
- QT style settings of qcobobox controls (rounded corners, drop-down boxes, up expansion, editable, internal layout, etc.)
- Problem - 1646C. Factorials and Powers of Two - Codeforces
- Radar equipment (greedy)
- QT实现圆角窗口
- Flask框架配置loguru日志库
- sublime text 代码格式化操作
- Codeforces Round #798 (Div. 2)A~D
猜你喜欢

Configuration du cadre flask loguru log Library

1013. Divide the array into three parts equal to and

MariaDB的安装与配置

QT implementation fillet window

Codeforces Round #802(Div. 2)A~D

Codeforces Round #801 (Div. 2)A~C

Tree of life (tree DP)

409. Longest palindrome

浏览器打印边距,默认/无边距,占满1页A4

Programmers, what are your skills in code writing?
随机推荐
(POJ - 2739) sum of constructive prime numbers (ruler or two points)
Opencv learning log 24 -- Hough transform 2 (maximum interval and minimum length can be limited)
Auto. Getting started with JS
力扣——第298场周赛
Acwing - game 55 of the week
本地可视化工具连接阿里云centOS服务器的redis
Configuration du cadre flask loguru log Library
Summary of FTP function implemented by qnetworkaccessmanager
Codeforces Round #799 (Div. 4)A~H
Openwrt build Hello ipk
AcWing:第58场周赛
C language must memorize code Encyclopedia
Problem - 1646C. Factorials and Powers of Two - Codeforces
Codeforces round 797 (Div. 3) no f
Hbuilder X格式化快捷键设置
Generate random password / verification code
AcWing——第55场周赛
969. Pancake sorting
Basic Q & A of introductory C language
Click QT button to switch qlineedit focus (including code)