擎天柱首领 发表于 2025-3-30 00:24

为什么我多开玩游戏的时候除了当天窗口,其他窗口都会变得很卡只有几帧

我用的4090,一旦多开玩游戏,除了当前活动的窗口其他窗口的都会变卡,这是为啥?

InuYasha 发表于 2025-3-30 00:27

"It's not a bug, it's a feature."
N卡驱动,限制后台帧率

擎天柱首领 发表于 2025-3-30 00:39

InuYasha 发表于 2025-3-30 00:27
"It's not a bug, it's a feature."
N卡驱动,限制后台帧率

但我在Nvidia控制面板里没看到这个设置

InuYasha 发表于 2025-3-30 00:56

擎天柱首领 发表于 2025-3-30 00:39
但我在Nvidia控制面板里没看到这个设置

说明你找得不够用心

PPXG 发表于 2025-3-30 01:13

InuYasha 发表于 2025-3-30 00:56
说明你找得不够用心

这跟N卡驱动没有任何关系,A卡也这样,都是显卡资源优先保证前台应用帧率

擎天柱首领 发表于 2025-3-30 01:13

InuYasha 发表于 2025-3-30 00:56
说明你找得不够用心

是我玩的游戏后台锁帧,而且是默认开启,没有给设置。

PPXG 发表于 2025-3-30 01:14

那么问题来了,显卡占用多少?

擎天柱首领 发表于 2025-3-30 01:20

PPXG 发表于 2025-3-30 01:14
那么问题来了,显卡占用多少?

4090也没占用多少,是游戏的问题,强行后台锁帧,无解。

Compiler 发表于 2025-3-30 01:33

系统调度问题。如果是intel大小核,非前台应用极大概率被放到小核上。最严重的时候wsl在后台的编译任务几乎无法进行。
改善方法是及时更新ppkg预配包。
但是无法根治非前台程序被调度到小核导致效率极低的问题,比如在虚拟机里面装个程序,只要当前虚拟机窗口没有获得焦点,那么安装进度会慢到令人无法忍受。
根治方法是抛弃大小核。抛弃不了就只能忍受。

gou123 发表于 2025-3-30 06:03

9楼说的对。

cuixiang 发表于 2025-3-30 09:12

Compiler 发表于 2025-3-30 01:33
系统调度问题。如果是intel大小核,非前台应用极大概率被放到小核上。最严重的时候wsl在后台的编译任务几乎 ...

“非前台应用极大概率被放到小核上”

那么 游戏最小化,算非前台吗?


或者说系统如何定义的非前台和前台

PPXG 发表于 2025-3-30 10:49

擎天柱首领 发表于 2025-3-30 01:20
4090也没占用多少,是游戏的问题,强行后台锁帧,无解。

那看来是游戏内部设置的非常前台自动降低帧数了

灰烬使者 发表于 2025-3-30 11:58

有些游戏默认设置就是这样的,比如诛仙,不过诛仙可以修改设置,让非当前窗口也保持帧数

paliangxi 发表于 2025-3-30 15:01

怎么不说说自己的使用平台和环境呢[偷笑]

MstrG 发表于 2025-3-30 15:03

Compiler 发表于 2025-3-30 01:33
系统调度问题。如果是intel大小核,非前台应用极大概率被放到小核上。最严重的时候wsl在后台的编译任务几乎 ...

那我AMD的5950x为啥也有这个问题。。。

sai7 发表于 2025-3-30 22:33

没遇到这个问题

Compiler 发表于 2025-3-31 09:10

cuixiang 发表于 2025-3-30 09:12
“非前台应用极大概率被放到小核上”

那么 游戏最小化,算非前台吗?


实际上只要窗口失去焦点就是“非前台”。如果你写过有图形界面的程序就会很容易明白这一点。
但Windows的调度逻辑比较复杂。对于命令行这种没有图形界面的程序,似乎是只要父进程(终端窗口)处于前台(即能够接受输入)就会将子进程也算作是前台,此时这个进程树全部运行在大核上。只要终端失去焦点(无论是否最小化),其子进程都会算作后台,性能会降低到几乎无法工作。
具体的调度逻辑说不清楚,上面的情况有时候会有例外,但没什么规律,总之非常烂。同样使用大小核的macOS就没这种问题。
最小化肯定不是前台了,哪怕只有这一个窗口,只要最小化就不是前台。

Compiler 发表于 2025-3-31 09:16

本帖最后由 Compiler 于 2025-3-31 09:18 编辑

MstrG 发表于 2025-3-30 15:03
那我AMD的5950x为啥也有这个问题。。。

Windows10/11的调度逻辑是基于intel的,对于amd尤其是双ccd版本一样非常烂。
amd自己的芯片组驱动再搭配ppkg预配包可以缓解,但仍然无法根治。
Windows对不同核心的调度是一团糟,超线程这种看起来没区别的情况都搞不太好,双ccd更是灾难了。如果一个程序的多个线程被放到不同的ccd上,那运行效率会非常惨。
想要调度问题最小,就使用单ccd且所有核心完全相同的处理器。其次的解决方案是等amd出超级x3d处理器,用一块大的x3d缓存把两个ccd连起来。最方便的解决方案是用一些工具软件设置进程的cpu亲和性(把某个进程绑定到某个cpu核心)。最简单但不保证百分百有效的是使用amd推荐的完整芯片组驱动、ppkg预配包和电源管理方案。

cuixiang 发表于 2025-3-31 09:25

Compiler 发表于 2025-3-31 09:10
实际上只要窗口失去焦点就是“非前台”。如果你写过有图形界面的程序就会很容易明白这一点。
但Windows的 ...

大致懂了。。。

ruo101 发表于 2025-3-31 09:28

学习了··

擎天柱首领 发表于 2025-3-31 21:04

Compiler 发表于 2025-3-31 09:16
Windows10/11的调度逻辑是基于intel的,对于amd尤其是双ccd版本一样非常烂。
amd自己的芯片组驱动再搭配p ...

intel没办法嘛?用win10也不行?

Compiler 发表于 2025-4-1 14:27

擎天柱首领 发表于 2025-3-31 21:04
intel没办法嘛?用win10也不行?

Win10对大小核的优化普遍来说比Win11差。
Intel要解决的话,可以试试关掉所有小核,然后用Win10。理论上来说可能会好一点。
页: [1]
查看完整版本: 为什么我多开玩游戏的时候除了当天窗口,其他窗口都会变得很卡只有几帧