我喜欢使用apache 的 ab工具或者 ApacheBench 来对性能进行基准测试。如果您的系统上还没有它,只需安装 apache2-utils 即可获取它。如果您在 Windows 上运行,您可以将其作为XAMPP 的一部分来获取。在 xamppapachebinab.exe 中找到可执行文件
现在,让我们比较一下我们的 jar 文件和原生镜像。请注意,两者都 华人海外数据 是使用 GraalVM 的 JDK 进行编译的。我将使用 ab 向两个端点发出 2500 个请求,如下所示:
$ ab -n 2500 http://localhost:8080/
$ ab -n 2500 http://localhost:8081/
我们的脂肪罐
该应用程序在 ms 下启动。第一批 AB 测试给了我以下结果:
连接时间(毫秒)
最小值平均值[+/-sd]中位数最大值
连接:0 0 0.0 0 0
处理中:0 1 2.7 1 132
等待中:0 1 2.6 0 130
总计:0 1 2.7 1 132
一定时间内服务请求的百分比(毫秒)50% 1
66% 1
75% 1
80% 1
90% 1
95% 2
98% 2
99% 3
100% 132(最长请求)复制
虽然 99% 的请求都在 3 毫秒内发出,但最长的请求仍然需要整整一秒。 A 对已经运行的应用程序进行了新的批处理:
连接时间(毫秒)
最小值平均值[+/-sd]中位数最大值
连接:0 0 0.0 0 0
处理中:0 0 0.2 0 5
等待中:0 0 0.2 0 5
总计:0 0 0.2 0 6
一定时间内服务的请求百分比(毫秒)50% 0
66% 0
75% 0
80% 0
90% 1
95% 1
98% 1
99% 1
100% 6(最长请求)复制
嗯,这很有趣。冷启动后的第一个请求似乎需要一些时间,但之后的任何请求都会非常快。转到我们的原生图像
原生图像
再次,应用程序启动非常快。