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

224 天前
 sinx003

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

1979 次点击
所在节点    Windows
24 条回复
HojiOShi
224 天前
又是一个英特尔大小核受害者。
wheat0r
224 天前
毕竟 there is always a core 0
7lQM1uTy635LOmbu
224 天前
@HojiOShi 10 核 20 线程没有大小核的吧
tool2dx
224 天前
大部分程序都是单双核跑的,你是怕把核心一累坏了?这倒是一个比较新的观点。

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