跳到主要内容

node

Node.js 运行时要点

ToC

  • 单线程与事件循环
  • libuv 线程池
  • I/O/文件/网络
  • 常见实践

单线程与事件循环

  • JS 执行是单线程,但 Node 利用底层线程池处理部分任务(如 fs、加解密、DNS)。

libuv 线程池

  • 默认 4 线程(UV_THREADPOOL_SIZE 可调);避免在热路径中阻塞线程池;
  • CPU 密集任务使用子进程/Worker Threads 分担。

I/O/文件/网络

  • 使用异步 API 与超时;对 HTTP 客户端设置连接池与重试;
  • 生产服务建议启用 --max-old-space-size、打开指标与 heap snapshot/CPU profile 能力。

常见实践

  • 结构化日志(pino/winston);
  • 优雅退出(SIGTERM/SIGINT)+ 连接与定时器清理;
  • 使用 clinic/0x/JFR on JDK proxy 进行性能排查(跨栈工具)。