Heim >Web-Frontend >js-Tutorial >Verstehen Sie schnell die Leistungsindikatoren in Node.js

Verstehen Sie schnell die Leistungsindikatoren in Node.js

青灯夜游
青灯夜游nach vorne
2021-09-16 10:10:183367Durchsuche

Dieser Artikel führt Sie durch die Leistungsindikatoren von Node.js, ich hoffe, er wird Ihnen hilfreich sein!

Verstehen Sie schnell die Leistungsindikatoren in Node.js

Für uns Front-End-Ingenieure ist die Beherrschung der Node.js-Anwendungsentwicklung der einzige Weg, Senior/Experten zu werden. Darüber hinaus ist Node.js eine serverseitige Sprache. Wir müssen nicht nur in der Lage sein, Entwicklungsaufgaben abzuschließen, sondern auch auf die Serverleistung achten. [Empfohlenes Lernen: „nodejs TutorialNode.js应用开发是我们走上资深/专家的一条必经之路。此外Node.js是一门服务端语言,我们不仅要能够完成开发任务,而且更应该要关注服务器性能。【推荐学习:《nodejs 教程》】

本文就针对Node.js的基础和性能指标做一些初步的介绍。

应用场景

在介绍NodeJS性能指标之前呢,我们先来看看它的应用场景,针对不同的应用场景,所要关注的性能指标是有所不同的。

  • BFF中间层,接口的代理,充当网关层

  • 开发构建工具gulpwebpack基于Node.js

  • 桌面应用程序Electron和Node.js结合

  • SSR服务端渲染

Node.js如果是用于前端SSR的话,那么CPU网络就会成为主要的性能瓶颈

如果使用NodeJS来进行数据持久化相关的工作,那么I/O磁盘会有很高的占用率;

而在大多数场景下,CPU内存以及网络可以说是Node的主要性能瓶颈。

优缺点

  • node.js容错,性能不是很好

  • node.js操作数据库不专业

  • node.js处理异步io强

  • io密集型,不适合cpu密集型

事件循环(libuv)

这里引用官网的一张图,展示了事件循环操作顺序的简化概览

Verstehen Sie schnell die Leistungsindikatoren in Node.js

阶段描述

  • 定时器:本阶段执行已经被 setTimeout() 和 setInterval() 的调度回调函数。
  • 待定回调:执行延迟到下一个循环迭代的 I/O 回调。
  • idle, prepare:仅系统内部使用。
  • 轮询:检索新的 I/O 事件;执行与 I/O 相关的回调(几乎所有情况下,除了关闭的回调函数,那些由计时器和 setImmediate() 调度的之外),其余情况 node 将在适当的时候在此阻塞。
  • 检测setImmediate() 回调函数在这里执行。
  • 关闭的回调函数:一些关闭的回调函数,如:socket.on('close', ...)

V8 GC机制

我们知道Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,同时它又是单线程的。

其中 V8内存 分为新生代和老生代 :

新生代:采用from空间->to空间内存回收scavenge算法

老生代:采用引用标记、碎片整理的形式进行内存回收

如果GC时间过长,会导致js线程阻塞,影响服务性能。内存使用不当,则会造成内存溢出。了解了以上Node.js的基础知识之后,我们再来看性能指标

性能指标

我们从系统层面和Node.js进程层面进行一个性能指标描述

系统层面

针对服务器(物理机虚拟机Docker 等)级别,提供如下监控指标:

  • 内存使用

  • CPU 使用率

  • 系统负载,使用中进程/等待进行的进程数

  • 系统 QPS

  • 硬性性能指标

  • 磁盘使用率

  • GC"]

  • Dieser Artikel gibt eine erste Einführung in die Grundlagen und Leistungsindikatoren von Node.js.
  • Anwendungsszenarien

  • Bevor wir die Leistungsindikatoren von NodeJS vorstellen, werfen wir zunächst einen Blick auf die Anwendungsszenarien. Für verschiedene Anwendungsszenarien sind die zu berücksichtigenden Leistungsindikatoren unterschiedlich.

Das obige ist der detaillierte Inhalt vonVerstehen Sie schnell die Leistungsindikatoren in Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:掘金--比心FE. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen