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:土豆儿最可爱
版权声明:本文标题:浅析DPC的概念与部分高延迟的解决办法(绝地求生出生爆音) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1716041799a483191.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论