admin管理员组

文章数量:1530845

2024年5月18日发(作者:)

先说说DPC,DPC(Deferred Procedure Call)—延迟过程调用,是

WINDOWS常用功能。

DPC是一种机制,当上层请求下来,由于过多的操作步骤,为了使系

统性能更好,使用一个完成调用例程,告诉上层“我完成了”,这样就可以

处理下面的请求了,而系统会把剩下得处理过程加入到一个叫做DPC的队

列中,等系统有空时,再来调用。这就是--延迟过程调用。 说白了,就是

一种缓冲机制, 是系统控制的。几乎每种现代操作系统都有这样的类似机

制。

通俗的讲就比如你是某单位的办公室主任,有两个上司,分别是大

Boss和二Boss。一天,大Boss找到你,“把这份文件改一改”,交代完注意

事项,转身离开,你放下手头工作正在改,这时二BOSS来了,也要改一

份文件,你当然放下手头文件,接待二BOSS,送走他后,你一般会先处理

大BOSS的文件,再处理二BOSS的文件。如果大BOSS在交代注意事项

时,二BOSS来了,那么他一般会等大BOSS讲完再说话。

DPC的原理和上面的例子本质上是一样的。大BOSS对应高级别的中

断,二BOSS对应低级别的中断,而写文件对应硬件中断后操作系统应做

的一些不太紧急的工作。上面的例子就对应高级别的中断产生(大BOSS

来了),如果处理任务很多,占用时间长,那么就将紧急的任务(对应着注

意事项)放在中断处理程序中,将不是很急的任务交给DPC去做,OK,

退出中断服务程序,这时低级别的中断(二BOSS)就可以得以及时响应,

低级别的中断也将一些不着急做的任务交给DPC完成,如果没有中断,将

DPC排好队,就开始做DPC中的工作(对应着写文件),当然,这时也是

允许中断发生的。

看到这儿你们肯定会问:MMB,DPC跟爆音有个**关系?

我肯定的讲,有关系。所谓爆音即为断音、擂格、跳音,现象表现

为:音乐、电影、游戏(有关系!)正常运行中,过个几十秒,突然来一

下“啪”、“嘣”,或者音乐、电影、游戏停顿0.n秒。有甚者就比如我

们可爱可恨的PUBG,。

产生这一问题的根源是,目前笔记本都采用软声卡,即AC 97声卡

(老古董)或HD(High Definition Audio)声卡,音频处理必须由CPU

来完成。如果电脑在放音时CPU被强制霸占,那么音频处理会产生停顿,

这时就会有爆音发生,就如PUBG出生岛脚步枪声连续向CPU发送指令,但

因某些原因导致此部分指令DPC较高,就导致了连续爆音。一般情况下,

应用软件不会造成这种问题,因为它们的CPU优先级要低于硬件(PUBG爆

音而其它优化较好的游戏不会爆音就是这个原因,还是PUBG优化的祸)。

所以,如果是硬件本身,那爆音肯定是由声卡同级别的硬件产生的,比如

显卡、网卡、硬盘控制器或CPU本身。

但如果硬件本身确定没问题,那DPU延迟是谁引发的呢?答案是操作

系统或者驱动程序。

先说操作系统,这里只说WIN10,WIN7的小伙伴们应该可以直接无

视。WIN10这里也只说Windows 10 Creators Update(创意者更新/代号

Redstone 2),版本号(1703)。如果你玩PUBG,如果你硬件健康,再如果

你用的笔记本,而且你用的win10,那我90%概率肯定你的系统版本号是

1703。玩音乐的估计都知道1703有问题,而且问题很大,一般都不会更新

这个版本。(无奈笔者新购联想拯救者Y720,默认系统就是1703,没办法

啊!只能各种看帖搜原因!)如果你通过本文排除各种原因依旧各种爆

音,那最好的办法就是回退版本或者干脆一了百了直接换回WIN7系统,因

为系统原因导致DPC延迟原因在我们这个知识储备层面是无法解决的,专

业性的调试与优化只能指望微软后续出的累计更新补丁。

再说驱动吧,这篇文章的重头戏。啥是驱动?驱动就是硬件的灵魂,

如果灵魂有问题那这个硬件肯定会出问题对吧!操作系统只能通过驱动的

才能与硬件实现互通,才能收集并下达各种指令。驱动的不兼容或指令冲

突会引发我们的笔记本很多问题,其中的一个就是DPC延迟过高。

如何查看到底是哪个硬件驱动引起的DPC延迟呢?

LatencyMon。它可以实时读取DPC队列时间并报告那些延迟过高的驱

动软件。你可以通过甄别这些延迟过高的驱动来了解到底哪些硬件的灵魂

出了问题。软件用法在这里就不过多累述,大家可以度娘(LatencyMon的

用法)。

DPC Latency Checker。它仅能甄别实时DPC延迟数值,但是我们没办

法知道到底是哪个硬件产生的DPC高延迟,仅用于初测DPC延迟是否健

康。

为什么我会对DPC延迟这么感兴趣呢?没错,我喜欢跳伞,但是跳伞

对我并不友好。首先因为宝宝喝奶的问题,换了住处,台式机分体水冷搬

不动啊,没办法,这让初遇跳伞的笔者很是不爽,加上老Y460小学都毕业

了,所以本笔者从JD怒买联想拯救者Y720,到了手里硬件各种测试一切

OK,内存直接换成贼船DDR4 2400 双16G。按道理讲你PUBG优化再差I7-

7700HQ 2.8GHz、32G的RAM、1060 6G的GPU低特效流畅跑个80FPS要求

不高吧?不高吧?MMB游戏中出生岛直接爆我音频是个什么节奏?笔者怒

了,然后就是各种论坛一路搜下去,WINDOWS内存检测排除内存故障,

CPU-Z、GPU-Z、AIDA64各种一通猛测各种硬件良好啊?这时候突然想到不

会是螃蟹出问题吧?然后就开始在音乐发烧相关论坛逛,发现了DPC延迟

的问题。之后就是通过上面提到的LatencyMon甄别硬件驱动,首先笔者通

过联想官网升级了BIOS排除主板问题,然后甄别到网卡延迟过高,随即更

新了网卡驱动并禁用了Realtek PCIe,再之后甄别到GPU声卡(就是显卡

HDMI接口声卡支持)高的奇葩,无HDMI高清音频需求,禁之。之后升级

了各个硬件驱动,最终完美解决绝地求生出生地爆音问题。

最后由衷的希望PUBG能再优化的好一些。

大吉大利!今晚吃鸡!

STEAM ID:土豆儿最可爱

本文标签: 硬件延迟问题驱动爆音