首页 > 解决方案 > 结果性能节点使用 mongo nestJs 或 fastify

问题描述

我做了两个项目,一个使用nestJS/mongoDB,另一个使用Fastify/MongoDB,以比较两个框架的性能。我做了一个简单的获取资源 API 来查询大约 400Kb 的 mongo 文档。两个项目路由都以超过 300 毫秒的时间响应 JSON 文档。有人可以向我解释额外的 280 毫秒是从哪里来的,因为 mongo 的响应时间不超过 20 毫秒。

这与他们同时响应的框架无关。是不是API做的压缩,是节点服务器的时间

当我分析代码时,mongo 响应不超过 20 毫秒,在这两种情况下,获取处理程序立即返回的文档。没有样板代码或额外的日志记录,只有普通的 HttpServer。

在 Fastify 我正在这样做

{
method: 'GET',
url: '/api/trees/:id',
handler: async (req, reply) => {
  try {
    const id = req.params.id
    const tree = await TaxonomiesTrees.findById(id)
    return tree.data
  } catch (err) {
    throw boom.boomify(err)
  }
 }
}

在像这样的 NestJS

 @Get(':id')
 async getTree(@Param('id') code: string) {
  const result = await this.treesCollection.findOne({id});
  return result.data
 }

标签: node.jshttpservernestjsfastify

解决方案


我找到了对我的问题的回答,以防万一,这似乎有点合乎逻辑。正如我所怀疑的,这与网络服务器将控制器结果解释为字节所花费的时间有关。TTBF被称为TTBF,衡量从 http 请求到发送到客户端的第一个字节所用的时间。


推荐阅读