结果 perf 节点使用 mongo nestJs 或 fastify

Result perf node using mongo nestJs or fastify

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

这不是他们同时响应的框架问题。是API做的压缩,还是节点服务器

用的时间

当我分析代码时,mongo 响应不超过 20 毫秒,在这两种情况下,get 处理程序立即返回文档。没有样板代码或额外的日志记录,只有普通的 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
 }

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