Mok*_*bai
6
播放视频和显示“简单”网页并不像您想象的那么容易。
YouTube 尤其是一个要求很高的网页。
- 它是高度动态的,有几个大的评论部分(可扩展并包含子菜单和动态出现的“添加评论”框)
- 它有大量“推荐”视频,所有这些都相当于浏览器加载并显示给您的另一个图像。
- 它可以在主区域拥有几种不同类型的视频,并且需要能够播放 hevc、h.264、webm 和其他一些视频。所有这些都需要浏览器中的一些程序来播放以及相关的缓冲区来下载和传递数据到您的图形卡。如果您的显卡缺少所选格式的硬件视频解码,则浏览器必须自行解码视频并使用更多内存。
- 当您在网站内导航时,网页不会完全卸载,它有很多动态的自我管理和导航正在进行。
- 有几个(几十个,如果不是更多)javascript 片段运行着从处理鼠标事件到广告跟踪等等。
- 您看到的所有数据都必须由浏览器处理并以某种方式处理,然后再移交给您的显卡。
- 该网页旨在用于从 1280*720 到最新的 4k 和 8k 分辨率的所有分辨率,并且将加载更大的分辨率元素或依赖光栅图像(相当于另一种格式来解码并能够查看- 更多代码和缓冲区)
- YouTube 还使用代码来检查您的速度,并且可能会从较低质量的流开始,并在看到连接速度达到要求时预先缓冲高质量的流,反之亦然。对于相同数量的视频,这又是更多的下载和缓冲可能更大量的数据。
所有这些都意味着库可以使用大量元素进行大量工作。所有这些元素都占用 RAM 进行跟踪、缓冲数据和处理。
通过这种方式,现代浏览器更像是 Web 应用程序的容器或主机。网络不再“只是”文本和图片,您的浏览器实际上是一个完整的网络“操作系统”,可以处理网络“程序”的所有显示和运行。
即使是 Microsoft 吹嘘的“高效”网络浏览器 Edge,也需要占用 1GB 以上的内存才能在我使用过的机器上查看 SuperUser 和 YouTube。
由于现代浏览器必须做的所有这些工作只是为了显示网页,因此已经付出了大量的努力来使其更快,并且在他们做的时候更可靠和更安全。
Firefox Quantum是 Mozilla 的答案,它使用多个进程来处理下载、页面处理、视频处理和显卡渲染。Chrome 和其他现代浏览器都使用类似的方法。缺点是重复的内存结构和必要的进程间通信存在一定程度的“膨胀”。
媒体丰富的网络和由此产生的大型浏览器要求是为什么 4GB 不再被认为足以满足正常使用的要求,而仅建议用于“轻度”使用。