请教一个 winodows 下 cpu 核心配分问题

2024-05-16 10:45:15 +08:00
 sinx003

windos10 环境下,有一颗 10 核心 20 线程的 cpu.为什么每次启动不同任务的时候,核心 1 总是负载很高?
注意哈,我的意思是我启动不同的任务的时候,他总是搞不犹豫的选择核心 1!
正常来说,核心 1 上已经有负载了,不应该到负载低的核心上吗?
再不济,你随机选一个核心也行啊?为什么非得选择核心 1 呢?

2288 次点击
所在节点    Windows
24 条回复
HojiOShi
2024-05-16 10:51:59 +08:00
又是一个英特尔大小核受害者。
wheat0r
2024-05-16 10:53:28 +08:00
毕竟 there is always a core 0
7lQM1uTy635LOmbu
2024-05-16 11:07:26 +08:00
@HojiOShi 10 核 20 线程没有大小核的吧
tool2dx
2024-05-16 11:13:12 +08:00
大部分程序都是单双核跑的,你是怕把核心一累坏了?这倒是一个比较新的观点。

确实应该随机分配的,只让核心一干活,也太不公平了。忙得忙死,闲得闲死。
HojiOShi
2024-05-16 11:17:42 +08:00
@nevadax #3 看走眼了
sinx003
2024-05-16 11:21:21 +08:00
@HojiOShi 志强 5e
justplaymore
2024-05-16 11:32:09 +08:00
Process Lasso
geekvcn
2024-05-16 11:34:48 +08:00
Windows 默认 DPC ,ISR 都跑在核心 0 上
augustheart
2024-05-16 11:40:29 +08:00
你的核心 1 指的是 cpu0 ?
有没有可能,你启动任务的时候,操作系统本身还得干活呢?
geekvcn
2024-05-16 11:41:23 +08:00
如果你启动的程序不是启动器之类的还要启动主要程序,直接写一个 bat 批处理就能随机分配核心,所需指令 start /affinity 。bat 伪随机数怎么生成直接网上 copy 代码
opengps
2024-05-16 11:50:41 +08:00
有可能你开的程序只支持单核,比如老版本的 redis memcached 之类,也可能你写的程序压根不支持多程序导致集中在几个核心上
jim9606
2024-05-16 12:01:48 +08:00
如果单个核没填满时都堆一个核心上,好像没什么问题,特别是如果这个核是被 CPPC 报告为优质核的情况。
sinx003
2024-05-16 13:35:51 +08:00
@augustheart 负载高的是核心 1,cpu2.
sinx003
2024-05-16 13:36:54 +08:00
@justplaymore 这个听起来不错,回去试试
sinx003
2024-05-16 13:40:46 +08:00
@geekvcn 能详细解释`如果你启动的程序不是启动器之类的还要启动主要程序` 吗?我没有在 win 下面有太多的开发.假设我想启动 edge 这种线程较多的程序,他能不能实现把负载放在除核心 1 外的地方?
sinx003
2024-05-16 13:45:12 +08:00
@jim9606 cppc 是针对 amd 平台的吗?首次接触,发现 amd 平台的资料?
mohumohu
2024-05-16 15:07:59 +08:00
我只是想单纯吐槽标题的 windows 多了个 o
Rumble66
2024-05-16 16:01:51 +08:00
Process Lasso 是软件级别的调度,实际上并不好用还要收费 windows 关于 cpu 的配置项非常多,但大多数都是隐藏的,比如通过配置可以使 win10 也支持大小核调度(实质就是任务优先级,长短任务分配的核心)
R4rvZ6agNVWr56V0
2024-05-16 16:12:20 +08:00
为啥纠结这种问题。
Windows 使用复杂的算法来决定哪个进程或线程应该在哪个核心上运行,
某些应用程序可能被设计为更倾向于使用特定的可用的核心,而不是随机选择。
R4rvZ6agNVWr56V0
2024-05-16 16:13:37 +08:00
一般来讲,使用 Windows API 亲和性函数 SetProcessAffinityMask 来将当前进程绑定到选定的核心上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1041235

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX