结果 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 请求到第一个字节发送到客户端所用时间的度量。
我做了两个项目,一个使用 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 请求到第一个字节发送到客户端所用时间的度量。