使用mongo nestJs或fastify的结果perf节点

时间:2019-04-01 19:15:30

标签: node.js httpserver nestjs fastify

为了比较两个框架的性能,我做了两个项目,一个使用nestJS / mongoDB,另一个使用Fastify / MongoDB。我制作了一个简单的get资源API,用于查询具有〜400Kb的mongo文档。两个项目的路由都在300毫秒内以JSON文档进行响应。有人能告诉我额外的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
 }

1 个答案:

答案 0 :(得分:0)

以防万一,我发现了对我问题的回答,这似乎是一种逻辑。我怀疑这与Web服务器将控制器的结果解释为字节所花费的时间有关。 TTBF ,是从http请求到发送给客户端的第一个字节所花费时间的度量。