Search: #Docker

  1. 《我们将 Node.js 内存占用减少了一半》

    《我们将 Node.js 内存占用减少了一半》

    标签:#后端 #Node.js #V8 #性能优化 #内存管理 #Docker

    本文介绍了通过启用 V8 引擎的指针压缩(Pointer Compression)技术,在不修改代码的情况下将 Node.js 应用内存占用减少约 50%,且仅带来 2-4% 的平均延迟开销,同时显著降低 P99 延迟。Cloudflare 与 Igalia 合作解决了历史性的"4GB 内存笼"限制,使每个 Worker 线程拥有独立的 4GB 压缩内存空间。

    文章要点:
    - 技术原理:指针压缩将 64 位指针转为 32 位偏移量,使每个指针从 8 字节减至 4 字节,内存占用减半,代价是每次堆访问需额外的加减法运算
    - 历史障碍:此前 Node.js 未默认启用是因所有 Worker 线程共享单一 4GB 内存空间,2024 年 Cloudflare 与 Igalia 合作推出 IsolateGroups 功能,使每个 V8 实例拥有独立的 4GB 压缩内存笼
    - 实验结果:在 Next.js 电商应用基准测试中,指针压缩实现内存减半(2GB→1GB),平均延迟仅增加 2.5-4.2%,但 P99 延迟降低 7-43%,最大延迟降低 6-38%,因更小的堆减少了 GC 暂停时间
    - 业务价值:可显著降低 Kubernetes 集群成本、提升多租户 SaaS 密度、支持边缘计算部署、增加 WebSocket 并发连接数
    - 兼容性限制:每个 V8 实例仍受 4GB 堆内存限制;使用旧版 NAN 的原生插件不兼容,但 Node-API 插件不受影响
    - 使用方式:通过 platformatic/node-caged Docker 镜像一键替换官方 Node.js 镜像即可启用

    链接:https://blog.platformatic.dev/we-cut-nodejs-memory-in-half

  2. #文章 #React 「如何 Docker 化 React 应用程序:开发人员分步指南」从 #Docker 基础入手,逐步指导创建Dockerfile、构建和运行Docker镜像,以及将镜像发布到Docker Hub

    #文章 #React 「如何 Docker 化 React 应用程序:开发人员分步指南」从 #Docker 基础入手,逐步指导创建Dockerfile、构建和运行Docker镜像,以及将镜像发布到Docker Hub。 How to Dockerize a React App: A Step-by-Step Guide for Developers | Docker