首页 文章 精选 留言 我的

精选列表

搜索[Node.js],共4464篇文章
优秀的个人博客,低调大师

Node.js 中处理 CPU 密集型任务的实战:从阻塞事件循环到 Worker Threads 落地

线上服务每隔一段时间就会出现接口响应变慢,监控里 event loop lag 飙升到几百毫秒,但 CPU 使用率并没有打满。排查下来发现是一个计算 PDF 页数的接口,用纯 JS 解析了一个几十 MB 的文件,同步遍历字节流的过程把主线程堵死了。Node 的单线程模型让所有 I/O 回调都排在这个计算任务后面,于是同一进程里的其他请求全部被拖慢。这个问题在图片处理、数据加解密、大 JSON 转换、报表生成等场景里很常见,本质是把 CPU 密集型逻辑放到了不该放的地方。这篇文章从一个真实接口出发,聊怎么定位事件循环阻塞,以及用 worker_threads 拆分任务时需要注意的线程通信、错误处理和资源上限控制。

优秀的个人博客,低调大师

Node.js 中 fs.readFile 与流式读取的陷阱:从一次内存爆仓说起

线上一个日志分析服务突然 OOM 重启,排查后发现是用 fs.readFile 读取了一个 1.2GB 的日志文件。这个文件在本地测试时只有几十 MB,生产环境切到全量日志后直接打爆了 Node 默认约 1.4GB 的堆内存上限。问题不在于 fs.readFile 本身有 bug,而在于很多人把它当成通用读取方案,忽略了它会把整个文件一次性载入内存这个事实。本文围绕文件读取的内存行为展开,对比 fs.readFile、fs.createReadStream 以及带 highWaterMark 的流式处理在真实场景下的差异,给出按行读取大文件、控制背压、避免字符串拼接爆内存的具体写法,也会顺带说明 readFileSync 在服务启动脚本中的合理用途。

优秀的个人博客,低调大师

Node.js 中 process.nextTick 与 setImmediate 的执行顺序陷阱:一个真实遇到的 bug

在一个订单状态同步服务里,我们用一个内存队列做批量提交,队列的 flush 逻辑依赖 process.nextTick 延迟执行。上线后发现某些情况下同一批订单会被重复提交,日志里两个 flush 几乎同时触发。排查后发现是 process.nextTick 和 setImmediate 在 I/O 回调中的执行顺序被想当然了:在同一个 I/O 周期里,nextTick 队列会在当前操作完成后立刻清空,而 setImmediate 要等到 poll 阶段结束、check 阶段才执行。如果回调里既往 nextTick 塞任务又用 setImmediate 做去重标记,去重标记可能晚于 flush 执行。这篇文章从事件循环各阶段的实际行为出发,用可复现的代码说明两者差异,并给出在批处理、递归调度和资源清理场景下的可靠写法。

优秀的个人博客,低调大师

Node.js 中用 worker_threads 处理 CPU 密集任务时,为什么你的进程还是卡住了

线上有个服务需要根据请求参数生成一批 PDF 报表,单个请求耗时在 300ms 到 900ms 之间,QPS 一上来整个 Node 进程的响应时间就飙到几秒。第一反应是用 worker_threads 把 PDF 生成挪到工作线程,结果改完发现主线程该卡还是卡。这个问题在 Node 里很常见:很多人以为只要把 CPU 密集代码丢进 Worker 就万事大吉,却忽略了 Worker 和主线程之间数据传递的开销、Worker 池的复用策略,以及线程本身对事件循环的影响。这篇文章从一次实际的性能排查过程出发,讲清楚 worker_threads 在真实业务里容易踩的几个坑,以及怎么把任务拆分、参数传递和池化做对,让线程真正起到隔离 CPU 计算的作用。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册