我只是使用:siege -b -t10s -q http://mynodejsserver
我发现没有“url.parse(req.url)”
交易率约为4300 trans / sec
但是当我使用url.parse时,交易率约为3600-3700 trans / sec
其他代码是相同的。
我尝试了很多次,结果很稳定。
url.parse真的有性能问题吗?
答案 0 :(得分:4)
是的,在删除url.parse
时techempower benchmarks node.js从20k / s变为30k / s。
与大多数node.js模块一样,实现速度非常慢(我已经在几个“事实上的标准”节点模块上重写了3x-75x的速度改进,只需检查我的github配置文件)。
我实际上也计划了url.parse
重写。但是,是的,如果你可以避免它,那么你应该避免它。
这解决了性能问题:https://npmjs.org/package/fast-url-parser。它具有完全相同的api和语义,但速度提高了25-30倍,并且在您的示例中根本不会影响事务率。