大家好,我是Reqable的开发者,很久没有对产品的性能进行摸底了,上一次测试还是2024年初。因此,我决定在3.1版本开始之前再做了一次整体性能的统计,顺便也拉上了几家同行,做个对比测试,了解下这个赛道里的各家情况。
这几家同行,有国内的也有国外的,全都是知名产品。这里先叠个甲,本篇文章的测试受限于设备、网络、系统、随机情况等等可能会有偏差,测试结果不代表软件的品质,仅供参考。
测试设备和环境:
- 13英寸的MacBook Pro
- M2芯片
- 8G内存
- Sequoia 15.7的系统
- 200M的网络带宽。
下面,我们来看看各个维度的测试结果。
1. 启动时间
相信大家最关心的就是程序的启动时间了,每次测试都让我想起很多年前在大学宿舍里比谁电脑的Windows系统启动更快的那个下午。
时间就是效率,效率就是早点干完活去摸鱼。
测试前的准备工作,每个测试程序都提前先初始化一遍,有账号系统的的登录账号,再导入同一个API集合(一共32个API),并且打开集合中的第一个API,其他的配置都保持初始化的状态不变。
打开视频录制,依次启动每个测试程序。我们将程序启动瞬间到界面数据完整显示这个时间差,视为启动时间,通过视频编辑工具获取视频画面帧来计算,下面是数据表格:
| API工具 | 开始时间点 | 完成时间点 | 启动时间(秒) |
|---|---|---|---|
| Reqable | 0.01.30 | 0.01.70 | 0.4 |
| ApiFox | 0.03.12 | 0.06.55 | 3.43 |
| ApiPost | 0.07.19 | 0.12.78 | 5.59 |
| Postman | 0.14.29 | 0.17.09 | 2.8 |
| Insomnia | 0.18.88 | 0.23.40 | 4.52 |
| Bruno | 0.25.12 | 0.27.32 | 2.2 |
下面是完整的测试视频(已转GIF):
我们来简单分析下这个测试结果。视频可以看出,Reqable在双击应用图标之后,程序窗口几乎立刻就出现了,这是得益于Flutter框架带来的原生般的窗口启动速度。而其他程序,几乎都要等待至少1s才会出现窗口,他们都有一个共同特点,用的Electron框架,在启动窗口之前要先启动多个进程,然后加载浏览器内核等等,最后才会启动窗口。
窗口启动后就是加载数据,比较慢的几款程序可以明显看到一个较长的加载过程,和网络状况以及服务器状况息息相关,纯离线存储的Bruno则快很多(没有网络请求的过程)。Reqable虽然也使用了云端数据,但是策略上会先加载本地数据,然后再从云端增量更新,因此不会受到网络因素影响,速度就极快。
在断网情况下,ApiFox、ApiPost和Postman三款都无法正常进入应用,Reqable、Insomnia和Bruno则可以正常进入,而且可以观察到Insomnia的启动速度会有明显提升。如果遇到网络或者服务器故障,前三款都将停摆,只有后三款能正常启动。
另外,由于设计问题,Insomnia和Bruno打开进入就是首页,并没有自动加载之前打开的API,这一点节省了些许时间。
总结一下,上面只有Reqable做到了秒启动,断崖式领先其他几款。可以预测,在有大量的API数据的时候,Reqable的启动优势会更加明显。
2. 空间占用
接下来我们看看安装包和所需要的安装空间。安装包的大小代表着更新和下载需要多久,也是我们性能评估的一个重要指标,安装包体积越大往往意味着潜在用户变成真正用户的门槛越高。安装空间代表着需要占用用户多大的磁盘空间,对于堪比黄金的Mac SSD来说,肯定是越小越好。
| API工具 | 安装包大小(MB) | 安装空间(MB) |
|---|---|---|
| Reqable | 30.7 | 86.7 |
| ApiFox | 226.2 | 705.2 |
| ApiPost | 125.6 | 340.2 |
| Postman | 122.2 | 317.9 |
| Insomnia | 341.7 | 1020 |
| Bruno | 155.1 | 417.6 |
需要注意的是,这里的安装空间仅仅代表软件最少所需空间,在软件启动后可能还会从服务器拉取必要的资源。这也是我们经常做安装包优化时常常采取的方案。
难以置信!Insomnia的安装所需空间已经夸张得超过了1个G,记得2024年测试过一次才不到600M。ApiFox也不遑多让,至少需要700M的空间,安装包也超过了200M。ApiPost和Postman两者差不多,虽然也不小,但是比前面这两个好多了。
Postman官网下载的安装包没有Mac专用的dmg格式,而是zip格式。由于两者都是压缩包,只是格式不同,实际上区别并不大。
Reqable的表现依然很优秀,30M多一点的安装包和不到90M的安装空间,是真正的小而美。
3. 内存占用
如果说前面的安装包大小和安装空间对于现代大容量SSD工作设备来说无所谓的话,那么运行时的内存占用还是会有很大影响的,毕竟现在内存条的价格一直在涨涨涨。
内存占用测试的方式也很简单,我们将每个应用程序都启动了,然后置于后台(也就是啥事都不干),然后用系统自带的活动监视器查看这些应用的内存使用情况即可。由于应用程序可能有多个进程,我们需要将全部进程的内存占用计算总和。
| API工具 | 进程总数 | 内存占用总和(MB) |
|---|---|---|
| Reqable | 1 | 103.4 |
| ApiFox | 9 | 824.8 |
| ApiPost | 4 | 328.6 |
| Postman | 6 | 517.3 |
| Insomnia | 4 | 437 |
| Bruno | 4 | 282.2 |
这组数据里面最耀眼的是ApiFox共有9个进程超过800M的内存使用,我一度以为操作失误,重复开了应用,反复验证后发现数据并没有问题。
其次就是Postman的6个进程超过500M的内存使用。
Reqable只有100M多一点,只有一个主进程,意味着没有任何的后台进程,干净后台。
请注意,以上数据仅仅是启动应用不做任何操作置于后台,运行时的内存使用相信只多不少。
三个维度测试结束,Reqable在这些API工具里面是绝对当之无愧的性能之王! 虽然随着科技的进步,设备的性能越来越高,但是谁不爱又快又小又干净的应用程序呢?