fastify가 다른 프레임워크보다 얼마나 더 나은 성능을 발휘합니까?

Fastify는 무엇입니까?





Fastify은 강력한 플러그인 아키텍처를 기반으로 애플리케이션의 백엔드를 개발하기 위한 웹 프레임워크입니다. Fastify 서버의 리소스를 효율적으로 처리하고 초당 serve the max 수를 requests 도와줍니다.

그것은 사용자 기반 때문이 아니라 사용 가능한 most fastest 프레임워크라는 사실 때문에 마을에서 가장 인기 있는 프레임워크입니다.

Fastify를 사용하는 이유는 무엇입니까?



시장에는 많은 대안이 있는데 왜 fastify에 집중해야 할까요?
이전에 백엔드 애플리케이션으로 작업한 적이 있다면 express , koa , hapi or restify 와 같은 인기 있는 프레임워크에 대해 들어봤을 것입니다. 이 중에서 가장 널리 사용되는 프레임워크는 Express.js이며, 광범위한 사용과 커뮤니티 지원으로 인해 항상 차트의 최상위에 있습니다. 그러나 성능면에서는 그렇지 않습니다.

이해하는 좋은 방법은 비교하는 것입니다.
fastifyexpress 사이에 수행한 비교를 살펴보십시오.

첫 번째 이미지는 autocannon (a benchmarking tool)를 사용한 급행입니다. 급행으로 제공되는 요청 수는 14k입니다.



fastify와 비교할 때 express보다 성능이 뛰어납니다. 초당 처리되는 요청 수는 28K로 express의 2배입니다.



다른 프레임워크와의 벤치마크에 대해서는 이 링크를 확인할 수도 있습니다. Benchmarks

성능의 이유



fastify 성능의 주된 이유 중 하나는 종속성 때문입니다. fastify가 사용하는 종속성 중 일부는 다음과 같습니다.
  • find-my-way
  • pino
  • fast-json-stringify
  • fastify-helmet

  • 그리고 다른 사람도 거의 없을 수 있습니다.

    이러한 각 종속성을 자세히 살펴보면.
  • 라우팅을 위해 클로저 할당을 피하고 기수 트리를 기반으로 하며 사용하기에 안전한 find-my-way를 사용합니다.
    javascript의 클로저 기반 문제를 모르는 사람들:

  • 1. Variables used by closure do not get garbage collected.
    2. Memory snapshot of the application increases if closures are not used properly
    
  • Fastify는 사용 가능한 다른 로깅 라이브러리( bunyan , winston )보다 성능이 뛰어난 로깅에 pino를 사용합니다.
  • JSON.stringify는 v8에서 최적화할 수 없으므로 스키마 기반 JSON 렌더링인 fast-json-stringify를 사용하고 스키마 기반 코드를 생성하여 JSON 직렬화를 위한 필드 유형을 식별하기 위한 계산 오버헤드를 크게 줄입니다.
  • Fastify-helmet는 다른 라이브러리
  • 보다 성능이 우수합니다.

    fastify의 성능 뒤에는 또 다른 이유가 있습니다.

    수명 주기입니다.



    사용하는 종속성에 관한 것이 아니라 v8로 최적화하는 방식으로 설계되었습니다.

    개발자가 작성하는 코드는 pre initialized fastify에 의해 사용되므로 요청 시 사용할 수 있으므로 더 빨라지고, 사전 초기화된 데이터 구조가 빠르고 향상되며 fastify 프레임워크의 효율성으로 인해 성능이 향상됩니다.

    추가하거나 수정할 사항이 있으면 모두 알려주세요.

    참조: Fastify

    좋은 웹페이지 즐겨찾기