耳机网-耳机大家坛

标题: 针对foobar2000卡顿的优化总结 [打印本页]

作者: SpinningSTAR    时间: 2019-1-28 23:03
标题: 针对foobar2000卡顿的优化总结
本帖最后由 SpinningSTAR 于 2019-1-28 23:56 编辑

之前我已经发过一个帖子,但仍觉得不够精,故在此重新总结一下foobar2000的优化小技巧
此贴仅供参考,希望在你foobar2000卡顿时能够参照此贴找到一个改善思路
请大家阅读此贴子时注意我对应的说明,都是我自己在实际使用过程当中总结出来的,由于本人水平有限,可能解释的不是特别准确到位





作者: SpinningSTAR    时间: 2019-1-28 23:17
本帖最后由 SpinningSTAR 于 2019-1-29 00:03 编辑

第一类方法:调节foobar2000自身的设置
1.缓冲长度选项

在foobar的 参数选项-播放-输出 界面上有个缓冲长度的选项



界面如图所示,单位为毫秒ms
当foobar卡顿时,可以通过适当拉高缓冲长度来提升流畅度
此项的作用是写入内存的缓冲时长,故拉高可在一定程度上解决卡顿
个人推荐500——1000ms
但请注意:
这个缓冲长度会影响听感,短缓冲下,声音解析度较高,但比较干燥,齿音较多.极端情况下,超出了声卡的能力范围,甚至会出现爆音和短暂的停顿;

高缓冲下,声音叫润,细节减少,但耐听.极端情况下,超出声卡缓存,会报错。

2.全文件缓冲选项

在foobar的 参数选项-高级-播放 界面上有一个全文件缓冲的选项


界面如图所示,这个选项的作用是设置播放时把源文件全部读入内存的最大文件大小

我设置的是1048600kb,也就是略大于1G(即为1048576kb)

请注意:在测试过程中发现foobar最大支持1G的全文件缓冲,在设置上写16G都没用,它最大还是缓存1G文件(一般的无损文件很少超过1G)

还试了试给foobar申请大内存,然并卵,最大就缓存1G


个人认为:全文件缓冲解决问题的概率较高,内存的读写速度远高于硬盘,哪怕是SSD,CPU直接从内存中读取文件,而不再是从硬盘一点点提取到内存,再由CPU读取

减少了中间过程,卡顿产生的几率也就更小。



如果你的电脑配置够好,推荐使用第二种方法,例如我电脑是16G内存,分1G听歌用总不过分吧(还不一定用满)

配置实在不行就用第一个方法,但影响听感。



作者: SpinningSTAR    时间: 2019-1-28 23:47
第二类方法:提升foobar的优先级,并使其CPU亲和力避开CPU0
实际使用中,如果你打开任务管理器会发现:CPU0的占用率明显高于CPU1234567......

也就是传说中的“一核有难,n核围观”

究其原因,CPU0作为第一逻辑核心,什么任务都会优先找上他
windows系统自带的DPC(延迟过程调用),DPC会导致高优先级进程打断低优先级进程
一旦来了优先级更高的任务,那么foobar的任务就被搁置了,也就卡了一下。


解决此问题的方法就是使用软件 process lasso 调整
第一,调高优先级

第二,调整CPU亲和力(注:一定要避开CPU0)

第三,调整I/O优先级

第四,调整内存优先级

注:一定要在总是里更改

解释一下我们这么做的目的
foobar本来也不太吃资源,还总被打断,我们提升它这几个方面:
1.优先级:即进程优先级,设为高,防止被打断
2.CPU亲和力:选择使用率较低的CPU核心上运行foobar的进程
3.I/O优先级:即该进程的调用硬盘资源的优先级,设为高
4.内存优先级:进程调用内存的优先级

用个通俗的解释就是:让工人优先干foobar的小活,找比较闲的工人去干,仓库的钥匙给工人们,流水线也允许优先使用

这样达到了从系统层面上优化foobar

而DPC是底层系统的运行机制,相当于宪法,很难很难很难更改!!!


作者: 大大TOM    时间: 2019-1-28 23:57
不管有没有用,先照样设置一下。
也没觉得有什么不同(本来也没爆音)
作者: rejx    时间: 2019-1-29 00:03
不知道楼主是什么windows系统,我亲身经历的情况是在win7下我用尽了很多方法其中就包括楼主的一些方法结果卡顿依旧,但我换成win10之后没做任何优化,卡顿消失了!!

作者: SpinningSTAR    时间: 2019-1-29 00:07
本帖最后由 SpinningSTAR 于 2019-1-29 00:08 编辑
rejx 发表于 2019-1-29 00:03
不知道楼主是什么windows系统,我亲身经历的情况是在win7下我用尽了很多方法其中就包括楼主的一些方法结果 ...

同win10,其实win10的卡顿不算太多,但我有强迫症。。。
还有,我有听歌时用电脑做其他事的习惯,此种做法会导致出现一定的卡顿,才研究的这些方法



作者: SpinningSTAR    时间: 2019-1-29 00:12
大大TOM 发表于 2019-1-28 23:57
不管有没有用,先照样设置一下。
也没觉得有什么不同(本来也没爆音)

哈哈,不卡顿就没必要看我这帖子了

作者: rejx    时间: 2019-1-29 00:37
SpinningSTAR 发表于 2019-1-29 00:07
同win10,其实win10的卡顿不算太多,但我有强迫症。。。
还有,我有听歌时用电脑做其他事的习惯,此种做 ...

我也是喜欢一边工作一边听音乐,要同时打开好几个大型软件,在同样的应用环境下win7秒顿频率高到我无法忍受,而换成win10就再也没发生过卡顿,可能还没有楼主折磨电脑那么狠吧。这说明win10确实有可取之处。

作者: SpinningSTAR    时间: 2019-1-30 18:46
再说一下:
1.foobar其实优化还行,但我听歌走的ASIO通道,可能就有点问题了,音质最佳,相对易卡顿;再加上我有听歌干其他事情的习惯,就更容易卡。
2.其实走DS通道从来没卡过,但音质堪忧;wasipi通道感觉有音染,就怎么没用过。
3.我CPU是i7-7700hq 4c8t 默频2.8Ghz 睿频3.8Ghz,理论上不应该会卡的,但现实打脸。
4.foobar占用不大,把它提升优先级后再移到闲置核心单独处理,卡顿问题就不大了。再把那些大型软件关闭foobar所在核心,感觉会更好。
5.之所以这么干,是因为process lasso也只是个软件,能提升的优先级有限,所以还是要配合CPU亲和力、IO优先级、内存优先级的调整。

作者: qq1653304183    时间: 2019-1-30 19:26
我拿着100块钱进图吧淘来一台电脑,闭着眼睛装上的Win7,一开foobar,完全没有卡顿。
不太能理解lz折腾是为个啥。。。
对楼主来说,也许去图吧淘个100块的电脑才是正经的解决之道。。
作者: 绽放、    时间: 2019-2-21 17:04
欸,少有的实用主义玩家,nice
作者: SpinningSTAR    时间: 2019-2-22 09:50
补充一下:最近实验发现,foobar2000并不太适合超线程技术,存在负优化
如果你电脑CPU有超线程,在避开CPU0的同时,选择物理核心也就是CPU2468....(偶数核心)


实在不知道那个是物理核心,你就点一下“Disable Hyper-Threading”,并关闭CPU0。

作者: la2ygoo    时间: 2019-2-22 10:05
本帖最后由 la2ygoo 于 2019-2-22 10:15 编辑

卡顿就是缓冲长度太低了吧,选1000ms可能就什么事都没。foobar官方也说asio和wasapi模式不提升音质,低延时下可能有副作用影响音质,说的就是卡顿爆音。
有个说法是设置到1280ms,然后高级里面wasapi push设置成320ms,然后用wasapi push输出音质最好。

我看aimp(类似foobar的软件)的缓存大小,算出来也是接近320ms。




作者: 芝麻汤团    时间: 2019-2-22 10:11
是不是开了高强度的SRC升频插件?
作者: SpinningSTAR    时间: 2019-2-22 10:19
芝麻汤团 发表于 2019-2-22 10:11
是不是开了高强度的SRC升频插件?

从不开那东西,影响音质的

作者: SpinningSTAR    时间: 2019-2-22 10:24
la2ygoo 发表于 2019-2-22 10:05
卡顿就是缓冲长度太低了吧,选1000ms可能就什么事都没。foobar官方也说asio和wasapi模式不提升音质,低延时 ...

ASIO对于DSD格式兼容性更好,而且DSDTransconder也仅支持ASIO通道
wasapi的话事件模式要好于推送模式吧

作者: 大大TOM    时间: 2019-3-7 14:58
SpinningSTAR 发表于 2019-1-28 23:47
第二类方法:提升foobar的优先级,并使其CPU亲和力避开CPU0
实际使用中,如果你打开任务管理器会发现:CPU ...

这个软件 process lasso非常好!

作者: 完美生活    时间: 2019-3-7 16:46
我的电脑是双核的。。。
作者: genius_xp    时间: 2019-3-7 16:57
不要用ASIO回放,回放用wasapi push模式更好。ASIO默认的缓存低,ASIO是XP时代为录音设备开发出来的,不是给回放音频用的,录音要求低延迟,回放延迟没什么大问题,缓存大一点,声音更稳定。
作者: genius_xp    时间: 2019-3-7 16:58
SpinningSTAR 发表于 2019-2-22 10:24
ASIO对于DSD格式兼容性更好,而且DSDTransconder也仅支持ASIO通道
wasapi的话事件模式要好于推送模式吧
...

Event模式貌似更清晰,但是声音硬,缺乏乐感,push模式听感更模拟,流畅。event需要频繁的上下文切换其实并不好。回放还是push好。

作者: SpinningSTAR    时间: 2019-3-7 17:48
genius_xp 发表于 2019-3-7 16:57
不要用ASIO回放,回放用wasapi push模式更好。ASIO默认的缓存低,ASIO是XP时代为录音设备开发出来的,不是 ...

主要是现在的前端都是原生的ASIO,效果比wasapi强不少,如果是用网上方法用插件模拟的ASIO就算了。

作者: genius_xp    时间: 2019-3-7 22:48
SpinningSTAR 发表于 2019-3-7 17:48
主要是现在的前端都是原生的ASIO,效果比wasapi强不少,如果是用网上方法用插件模拟的ASIO就算了。

原生的ASIO动态度初听是可以,长久了发现觉得动态大不耐听,还是wasapi耐听。一耳朵asio感觉不错,长久觉得就那回事,wasapi稳定性更好,尤其电脑还做别的事的时候就很明显了。wasapi几乎不受负载影响,asio高负载时候,声音劣化的厉害。

作者: felixzhouhj    时间: 2019-3-7 22:54
换成支持NVMe的M.2硬盘,读写速度比普通SATA SSD快5倍。
作者: SpinningSTAR    时间: 2019-3-8 06:56
genius_xp 发表于 2019-3-7 22:48
原生的ASIO动态度初听是可以,长久了发现觉得动态大不耐听,还是wasapi耐听。一耳朵asio感觉不错,长久觉 ...

我感觉问题不大,把ASIOhost64.exe优先级提到实时就没任何问题
还有现在新版foobar对于DSD128往上的文件,无论何种方法NATIVE输出,都走的ASIO通道wasapi在DSD128品质以上的文件就跪了,DSD文件转PCM还不好听。
所以我还是坚持用ASIO


作者: genius_xp    时间: 2019-3-8 08:57
SpinningSTAR 发表于 2019-3-8 06:56
我感觉问题不大,把ASIOhost64.exe优先级提到实时就没任何问题
还有现在新版foobar对于DSD128往上的文件 ...

DSD文件又不多,无所谓啦,原生的24bit 96kHZ,192kHz比DSD好听,动态质感,密度,人声完爆DSD。前提是真的24bit而不是后转的,网上很多假24bit。不建议你用实时,实时反而更容易卡顿,如果你电脑还要做其他事,用高比实时更稳定,你可以试试,我一般都是设成高,我写了一个默认以高启动的脚本,这样就不用每次都改了。大部分音乐还是pcm。

作者: qq1653304183    时间: 2019-3-8 09:15
本帖最后由 qq1653304183 于 2019-3-8 09:16 编辑

一个小小的foobar还远没达到需要研究进程优先级,处理器亲和力这些问题的地步。
如果说卡,多半其实是操作系统或者声卡驱动有bug,换Win7多半就能解决问题。
至于死抱着Win10不放的人只能自求多福了,谁叫现在的Win10是一群印度人负责的呢,
今早还出了个会导致鼠标卡顿的更新推送,微软给出的唯一解决办法就是卸载更新。

作者: SpinningSTAR    时间: 2019-3-8 11:19
qq1653304183 发表于 2019-3-8 09:15
一个小小的foobar还远没达到需要研究进程优先级,处理器亲和力这些问题的地步。
如果说卡,多半其实是操作 ...

没办法,i7-7700hq,不支持win7,即便强装win7也是一堆更复杂的问题。
你可能觉得亲和力和优先级用在foobar小题大做,但我这么弄之后很少卡,
音乐品质还高,而且电脑也存在个体差异,而且是很大的,就像你说的更新
赠送鼠标卡顿。
有时候的卡顿你都查不出原因,还不如我们就把Foobar奉为座上宾

作者: wjczzcj    时间: 2019-3-8 14:41
赞一个,收藏了。
作者: 一起玩    时间: 2020-3-13 17:11
不错,好帖子
作者: webcl2008    时间: 2020-12-23 09:22
非常不错,解决了我的问题
作者: 6um    时间: 2022-5-12 21:47
SpinningSTAR 发表于 2019-1-30 18:46
再说一下:
1.foobar其实优化还行,但我听歌走的ASIO通道,可能就有点问题了,音质最佳,相对易卡顿;再加 ...

输出DSD asio,开了dsd处理器,我的cpu gtx1650也不算差吧,同样经常卡顿,使用上述配置没有明显改善





欢迎光临 耳机网-耳机大家坛 (http://erji.net/) Powered by Discuz! X3.2