b 站网页端也会开启 PCDN?

2024-03-31 23:02:52 +08:00
 LnTrx
最近浏览网页时经常发现风扇在呼呼转,用系统任务管理器发现是 Chrome 在占用,用 Chrome 任务管理器确定是一个已经暂停的 b 站视频页面在大量占用 CPU 。通过调试暂停和性能分析发现了两个显眼的 js:

https://s1.hdslb.com/bfs/static/pcdn-loader/reward-pcdn-loader-0.1.3.min.js
https://s1.hdslb.com/bfs/static/pcdn-seeder/reward-seeder-1.2.0.min.js

从名称和内容来看似乎与 PCDN 有关。但由于本人在这方面不够专业,希望有人可以分析一下这些代码到底在干什么,为什么会占这么多 CPU 。

大量占用 CPU 情况的出现似乎有一定概率性。我这边打开一些较多人在看的视频、暂停放在那里干别的事情,等一会儿( 5~10 分钟)听到风扇响起来多半就复现了。也想了解大家是否能复现。
14448 次点击
所在节点    程序员
67 条回复
S179276SP
2024-04-15 00:00:05 +08:00
话说我才发现韩国最大的直播网站 afreecate 如果不下载他的电脑客户端,只能看 480p 的画质,估计也是用了 pcdn
palemoky
2024-06-23 16:09:02 +08:00
刚刚解决困扰我很久的 B 站卡顿问题,解决方法很简单,只需要把以下两个域名拦截即可,完全不需要屏蔽 WebRTC
1. http://data.bilibili.com (用户分析数据上报)
2. http://hdslb.com ( PCDN ,只屏蔽这个也可以)

P.S. 装上油猴脚本 Make BiliBili Great Again 体验更佳
palemoky
2024-06-23 23:05:38 +08:00
@palemoky 直接屏蔽 hdslb.com 会导致搜索和文章页面样式无法加载,可以在 Make BiliBili Great Again 中加入以下内容来解决:
```javascript
!function () {
const allowedDomain = 's1.hdslb.com';

// 拦截 fetch 请求
const oldFetch = unsafeWindow.fetch;
unsafeWindow.fetch = function (url, ...args) {
if (typeof url === 'string' && url.includes('.hdslb.com') && !url.includes(allowedDomain)) {
return Promise.reject(new Response('拦截的请求', { status: 403 }));
}
return oldFetch.call(this, url, ...args);
};
}();
```
wanzhuan85
2024-06-27 00:22:50 +08:00
@palemoky #63 没搞懂怎么弄,可以教教吗?用什么软件拦截这两个域名?
palemoky
2024-07-02 18:11:57 +08:00
@wanzhuan85 你 Chrome 有 TamperMonkey 插件吧?然后把链接中的这段代码粘进去应该就可以了。
https://codefile.io/f/A5mn0LACWf

相比原版,我修改了两处:
1. 第 7 行 https://www.bilibili.com/* 改为 https://bilibili.com/*
2. 增加了 315 行的函数
wanzhuan85
2024-07-07 12:34:14 +08:00
@palemoky #65 非常感谢,这个代码修改得很好,之前我要配合拦截广告去拦截这两个域名,结果就是只能看到直播界面,其他右边弹幕那些都会被拦截掉,现在就非常的正常了,就很完美。
Leao9203
2024-08-06 00:50:34 +08:00
@DOLLOR 并不是,如果 PCDN 只是对应一两个连接数,那确实没什么影响。但是连接数多了,CPU 占用率必上去啊...不然为什么针对纯 Nginx 、Apache 网站的攻击仍然会生效呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1028610

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX