6款API工具性能实测,谁才是王者?

240 阅读6分钟

大家好,我是Reqable的开发者,很久没有对产品的性能进行摸底了,上一次测试还是2024年初。因此,我决定在3.1版本开始之前再做了一次整体性能的统计,顺便也拉上了几家同行,做个对比测试,了解下这个赛道里的各家情况。

这几家同行,有国内的也有国外的,全都是知名产品。这里先叠个甲,本篇文章的测试受限于设备、网络、系统、随机情况等等可能会有偏差,测试结果不代表软件的品质,仅供参考

测试设备和环境:

  • 13英寸的MacBook Pro
  • M2芯片
  • 8G内存
  • Sequoia 15.7的系统
  • 200M的网络带宽。

下面,我们来看看各个维度的测试结果。

1. 启动时间

相信大家最关心的就是程序的启动时间了,每次测试都让我想起很多年前在大学宿舍里比谁电脑的Windows系统启动更快的那个下午。

时间就是效率,效率就是早点干完活去摸鱼。

测试前的准备工作,每个测试程序都提前先初始化一遍,有账号系统的的登录账号,再导入同一个API集合(一共32个API),并且打开集合中的第一个API,其他的配置都保持初始化的状态不变。

打开视频录制,依次启动每个测试程序。我们将程序启动瞬间到界面数据完整显示这个时间差,视为启动时间,通过视频编辑工具获取视频画面帧来计算,下面是数据表格:

API工具开始时间点完成时间点启动时间(秒)
Reqable0.01.300.01.700.4
ApiFox0.03.120.06.553.43
ApiPost0.07.190.12.785.59
Postman0.14.290.17.092.8
Insomnia0.18.880.23.404.52
Bruno0.25.120.27.322.2

下面是完整的测试视频(已转GIF):

test.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)
Reqable30.786.7
ApiFox226.2705.2
ApiPost125.6340.2
Postman122.2317.9
Insomnia341.71020
Bruno155.1417.6

image.png

需要注意的是,这里的安装空间仅仅代表软件最少所需空间,在软件启动后可能还会从服务器拉取必要的资源。这也是我们经常做安装包优化时常常采取的方案。

难以置信!Insomnia的安装所需空间已经夸张得超过了1个G,记得2024年测试过一次才不到600M。ApiFox也不遑多让,至少需要700M的空间,安装包也超过了200M。ApiPost和Postman两者差不多,虽然也不小,但是比前面这两个好多了。

Postman官网下载的安装包没有Mac专用的dmg格式,而是zip格式。由于两者都是压缩包,只是格式不同,实际上区别并不大。

Reqable的表现依然很优秀,30M多一点的安装包和不到90M的安装空间,是真正的小而美。

3. 内存占用

如果说前面的安装包大小和安装空间对于现代大容量SSD工作设备来说无所谓的话,那么运行时的内存占用还是会有很大影响的,毕竟现在内存条的价格一直在涨涨涨。

内存占用测试的方式也很简单,我们将每个应用程序都启动了,然后置于后台(也就是啥事都不干),然后用系统自带的活动监视器查看这些应用的内存使用情况即可。由于应用程序可能有多个进程,我们需要将全部进程的内存占用计算总和。

API工具进程总数内存占用总和(MB)
Reqable1103.4
ApiFox9824.8
ApiPost4328.6
Postman6517.3
Insomnia4437
Bruno4282.2

image.png

image.png

这组数据里面最耀眼的是ApiFox共有9个进程超过800M的内存使用,我一度以为操作失误,重复开了应用,反复验证后发现数据并没有问题。

其次就是Postman的6个进程超过500M的内存使用。

Reqable只有100M多一点,只有一个主进程,意味着没有任何的后台进程,干净后台。

请注意,以上数据仅仅是启动应用不做任何操作置于后台,运行时的内存使用相信只多不少。


三个维度测试结束,Reqable在这些API工具里面是绝对当之无愧的性能之王! 虽然随着科技的进步,设备的性能越来越高,但是谁不爱又快又小又干净的应用程序呢?