下载器横评

下载器能够多线程下载网络资源,使带宽最大化。

写一个下载器实际上也没有什么难度。只需要用一个最基本的异步模型,加上一些 http 的小细节即可。这里有一位老哥已经写了一个简易版下载器,我引用 ta 只想说明下载器真没有什么技术含量。

这理应是所有浏览器必需内置的功能。在写此文时查了一下,主流的浏览器都自带多线程下载功能,可以在 flags 里启用;实测下来,其下载速度与下载器有差距但不算太大,理论上可以抛弃下载器。

测试:(测试链接;关闭代理)

需要注意的是,这样的测试方法的波动还是相当大的,毕竟我校的网络就是一坨屎。

方式 下载速度(MB/s)
浏览器内置 5.9
Neat Download Manager 10.0

开启内置功能

可以去这里查询如何开启多线程下载。

浏览器默认是不开启的。你可以下载一个大文件,如果在下载完毕后需要等待一阵子,并且等待时间与文件大小成正比,那就意味着已开启多线程下载,因为其下载完各块后需要一个合并过程。(注意,要关掉 Windows Defender 等一切杀毒软件。否则等待时间不一定用于合并块。)

IDM

想必大家都听过 IDM 的大名。我在小初时接触的第一款下载器就是 IDM,当然,是破解版。

IDM 是一个付费软件,但是在中国的环境下大家用的都是盗版。具体的可以在 bilibili 找到,理论上选播放量大的视频给出的下载链接不容易下载到带病毒的版本。如果是其他地方下载的,有病毒的风险相对更高。

XDM

我的第二个下载器是 XDM。XDM 是一个 Github 开源的下载器,其界面还算好看。后面弃用的原因是:

Neat Download Manager

功能和逻辑都和 idm 差不多。

httpdownloader

尝试的另一个开源 downloader。

Motrix

Github 高赞的仓库,支持 torrent 下载。界面做得很好看,但是也很重量级。已经很久没有维护了,作者 Github 也没有其他动态,疑似作者跑路或出事。

用起来比浏览器开多线程下载稍快,可以算作误差。

hydra

一个比较新的开源 Rust downloader。搞下来尝试了下。测试版本:v1.1.0

功能上比 NDM 要丰富一些,可以完全覆盖我的需求,不过功能多也意味着要找想要的功能会更难找。

另外 hydra 有个非常奇怪的行为,就是默认开启后台自动下载(无需用户确认),于是我点击链接后出一个弹窗问我是否确认下载,但是我什么都不点,过一会儿也会提示下载完成。要做自动开始就自动开始,别让 UI 和行为不一致啊。

内存占用,hydra 常态 22MB,NDM 常态 5MB,完全被爆杀。对我而言,我觉得没有切换到 hydra 的理由。