V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sinx003
V2EX  ›  Windows

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

  •  
  •   sinx003 · 225 天前 · 1981 次点击
    这是一个创建于 225 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  225 天前
    有什么那么一个程序,可以让我每次启动的时候,随机分配一个核心跑?
    24 条回复    2024-05-16 18:37:23 +08:00
    HojiOShi
        1
    HojiOShi  
       225 天前
    又是一个英特尔大小核受害者。
    wheat0r
        2
    wheat0r  
       225 天前
    毕竟 there is always a core 0
    7lQM1uTy635LOmbu
        3
    7lQM1uTy635LOmbu  
       225 天前
    @HojiOShi 10 核 20 线程没有大小核的吧
    tool2dx
        4
    tool2dx  
       225 天前
    大部分程序都是单双核跑的,你是怕把核心一累坏了?这倒是一个比较新的观点。

    确实应该随机分配的,只让核心一干活,也太不公平了。忙得忙死,闲得闲死。
    HojiOShi
        5
    HojiOShi  
       225 天前
    @nevadax #3 看走眼了
    sinx003
        6
    sinx003  
    OP
       225 天前
    @HojiOShi 志强 5e
    justplaymore
        7
    justplaymore  
       225 天前
    Process Lasso
    geekvcn
        8
    geekvcn  
       225 天前 via Android
    Windows 默认 DPC ,ISR 都跑在核心 0 上
    augustheart
        9
    augustheart  
       225 天前
    你的核心 1 指的是 cpu0 ?
    有没有可能,你启动任务的时候,操作系统本身还得干活呢?
    geekvcn
        10
    geekvcn  
       225 天前 via Android
    如果你启动的程序不是启动器之类的还要启动主要程序,直接写一个 bat 批处理就能随机分配核心,所需指令 start /affinity 。bat 伪随机数怎么生成直接网上 copy 代码
    opengps
        11
    opengps  
       225 天前
    有可能你开的程序只支持单核,比如老版本的 redis memcached 之类,也可能你写的程序压根不支持多程序导致集中在几个核心上
    jim9606
        12
    jim9606  
       225 天前 via Android
    如果单个核没填满时都堆一个核心上,好像没什么问题,特别是如果这个核是被 CPPC 报告为优质核的情况。
    sinx003
        13
    sinx003  
    OP
       225 天前
    @augustheart 负载高的是核心 1,cpu2.
    sinx003
        14
    sinx003  
    OP
       225 天前
    @justplaymore 这个听起来不错,回去试试
    sinx003
        15
    sinx003  
    OP
       225 天前
    @geekvcn 能详细解释`如果你启动的程序不是启动器之类的还要启动主要程序` 吗?我没有在 win 下面有太多的开发.假设我想启动 edge 这种线程较多的程序,他能不能实现把负载放在除核心 1 外的地方?
    sinx003
        16
    sinx003  
    OP
       225 天前
    @jim9606 cppc 是针对 amd 平台的吗?首次接触,发现 amd 平台的资料?
    mohumohu
        17
    mohumohu  
       225 天前
    我只是想单纯吐槽标题的 windows 多了个 o
    Rumble66
        18
    Rumble66  
       225 天前
    Process Lasso 是软件级别的调度,实际上并不好用还要收费 windows 关于 cpu 的配置项非常多,但大多数都是隐藏的,比如通过配置可以使 win10 也支持大小核调度(实质就是任务优先级,长短任务分配的核心)
    GeekGao
        19
    GeekGao  
       225 天前
    为啥纠结这种问题。
    Windows 使用复杂的算法来决定哪个进程或线程应该在哪个核心上运行,
    某些应用程序可能被设计为更倾向于使用特定的可用的核心,而不是随机选择。
    GeekGao
        20
    GeekGao  
       225 天前
    一般来讲,使用 Windows API 亲和性函数 SetProcessAffinityMask 来将当前进程绑定到选定的核心上
    wy315700
        21
    wy315700  
       225 天前
    当年芯片的调度规则是会指定一个体质最好的核心,在跑单核应用的时候尽可能把任务分配到这个核心上并且尽可能提高这个核心的频率
    GeekGao
        22
    GeekGao  
       225 天前
    rojer12
        23
    rojer12  
       225 天前
    一核有难,9 核围观,基操了
    shuax
        24
    shuax  
       225 天前
    winodows 11 好像会均匀调度,不会让一个核心太累。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2830 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:29 · PVG 19:29 · LAX 03:29 · JFK 06:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.