Приведите перфузионный узел, используя монго или нестись - PullRequest
0 голосов
/ 01 апреля 2019

Я сделал два проекта, один из которых использовал nestJS / mongoDB, а другой - Fastify / MongoDB, чтобы сравнить производительность обеих платформ.Я сделал простой API для получения ресурсов, запрашивая монго-документ размером ~ 400 КБ.Маршрут обоих проектов отвечает документом JSON более 300 мс.Может кто-нибудь объяснить мне, откуда прибывает дополнительные 280 мс, поскольку монго отвечает не более 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 голосов
/ 02 апреля 2019

Я нашел ответ на мой вопрос на случай, если это кажется чем-то логичным. Как я и сомневался, это связано со временем, затрачиваемым веб-сервером на интерпретацию в байтах результата от контроллера. Известный как TTBF - измерение времени, прошедшее с http-запроса до первого байта, отправленного клиенту.

...