bunjs性能真的比nodejs更快吗

147 阅读1分钟

nodejs使用chrome v8,bunjs使用webkit的javascript core

本测试仅比较代码运行效率,即jit优化,不测试api的性能。

实现红黑树进行随机插入删除和查找的性能测试。

使用逻辑斯谛函数生成伪随机数以保证每次测试数据相同。代码经过多次预热以保证完全进行jit编译优化。下面数据为测试结果稳定后的样本。

nodejs
[65.81571800000006ms] Insert 100000 elements
Tree height: 20
[32.90339299999994ms] Insert 100000 elements
Tree height: 31
[3.203302000000008ms] Search 10000 existing elements
[1.5546729999999798ms] Search 10000 missing elements

[54.024564000000055ms] Insert 100000 elements
Tree height: 20
[28.78112699999997ms] Insert 100000 elements
Tree height: 31
[3.075552000000016ms] Search 10000 existing elements
[0.4562510000000657ms] Search 10000 missing elements

bunjs
[60.01871599999998ms] Insert 100000 elements
Tree height: 20
[19.967264ms] Insert 100000 elements
Tree height: 31
[2.643279000000007ms] Search 10000 existing elements
[0.9074300000000335ms] Search 10000 missing elements

[54.144011999999975ms] Insert 100000 elements
Tree height: 20
[22.93271299999998ms] Insert 100000 elements
Tree height: 31
[2.3765359999999873ms] Search 10000 existing elements
[0.7486450000000104ms] Search 10000 missing elements

在红黑树测试中,bunjs的代码运行效率稍高于nodejs。但性能差距并未达到 Express.js等服务器性能测试,说明bunjs的http相关api性能高于nodejs或其针对一些场景进行了性能优化。