首页 文章 精选 留言 我的

文章列表

共 234744 篇
Node.js中处理CPU密集型任务的三种实用方案与避坑指南

Node.js中处理CPU密集型任务的三种实用方案与避坑指南

在Node.js里写业务代码,迟早会碰到一个绕不开的问题:某个接口突然变慢,甚至整个服务卡住不响应。排查一圈发现不是数据库慢,也不是网络问题,而是某段同步计算把事件循环堵死了。比如生成大体积PDF、解析几十MB的CSV、做图片缩略图、跑加密签名,这些操作在单线程模型下会直接让后续所有请求排队。很多团队一开始用setImmediate或者Promise包装一下...

Node.js 中 Promise.all 并发请求导致内存暴涨的排查与修复

Node.js 中 Promise.all 并发请求导致内存暴涨的排查与修复

最近在维护一个基于 Node.js 的数据聚合服务时,遇到一个不太容易复现的问题:服务运行一段时间后 RSS 内存会缓慢上涨,最终触发容器 OOM 重启。这个服务主要负责从多个上游接口拉取数据、合并后返回给前端,单次请求会并发调用 8 到 12 个下游 HTTP 接口。用 Promise.all 把请求包起来是最直观的写法,代码也一直这么跑着。问题出现在上游...

React 中 useEffect 依赖数组引发无限循环的三种真实场景与修复

React 中 useEffect 依赖数组引发无限循环的三种真实场景与修复

在 React 函数组件里用 useEffect 处理副作用时,依赖数组写错往往不会立刻报错,而是表现为组件反复渲染、接口被疯狂调用,甚至浏览器卡死。尤其在组件卸载后 setState、把对象或函数直接放进依赖、以及条件分支里调用 Hook 时,问题更隐蔽。这篇文章从实际项目里常见的三个场景出发,拆解每次渲染都生成新引用导致依赖比较失败的原因,给出用 use...

高校与医院采购如何破局?看锐竞平台如何打造“合规、降本与效率”的黄金平衡点

高校与医院采购如何破局?看锐竞平台如何打造“合规、降本与效率”的黄金平衡点

导语:在高校、科研院所以及公立医院的日常运转中,物资采购一直是一项极具挑战性的系统工程。与普通企业采购不同,高校与医院的采购面临着“高频、分散、品类极杂、专业门槛高”等特点。上至百万级的专业临床诊疗设备、精密科研仪器,下到几毛钱的离心管、一次性注射器,乃至受严格管制的易制毒化学品、高风险试剂。每一笔采购,不仅直接关系到科研实验的成败和...

Go 服务里 time.Ticker 泄漏导致 CPU 飙升的排查与修复

Go 服务里 time.Ticker 泄漏导致 CPU 飙升的排查与修复

线上一个用 Go 写的推送网关最近频繁被报警,表现是进程 CPU 占用从平时的 30% 左右一路涨到 200% 以上,重启后能恢复,但跑上两三天又慢慢变高。这个网关的核心逻辑是每个 WebSocket 连接建立后,启动一个 goroutine 用 time.Ticker 定时从 Redis 拉取该用户的消息并推送到连接上。排查的时候先用 pprof 抓了 g...

#WorkBuddy# #AI办公# 5.86GB 疑云结案:目标机一上线,四条联接点全招了——数据根本不在 C 盘

#WorkBuddy# #AI办公# 5.86GB 疑云结案:目标机一上线,四条联接点全招了——数据根本不在 C 盘

前天我给局域网那台 Windows 做完 AppData 下钻,留了个悬案:Roaming 一级 138 项逐个 robocopy 求和 13.37GB,整树实测却只有 7.51GB,多出来的 5.86GB 恰好等于 Adobe、Tencent、Seewo、Slack 四户之和。当时只敢推断"这四户本身是联接点或内含根级链接",因为目标机...

Node.js 中使用 worker_threads 处理 CPU 密集型任务时,为什么你的性能反而下降了?

Node.js 中使用 worker_threads 处理 CPU 密集型任务时,为什么你的性能反而下降了?

上个月帮朋友排查一个图片处理服务的性能问题,他们用 Node.js 起了一个 HTTP 服务,收到请求后对上传的图片做缩放和格式转换,用的是 sharp。逻辑本身没问题,但压测时 QPS 死活上不去,CPU 占用却跑满了。他听说 worker_threads 可以把计算任务挪到子线程,避免阻塞事件循环,于是把 sharp 调用包进了 Worker 里,结果吞...

Node.js 中处理大文件上传的流式方案与内存陷阱

Node.js 中处理大文件上传的流式方案与内存陷阱

在 Node.js 服务端接收文件上传时,很多人会直接使用 express 的 multer 或 formidable 默认配置,把整个文件缓冲到内存再写入磁盘。当上传一个几百 MB 的视频或数据包时,进程内存会瞬间飙升,轻则触发 GC 停顿,重则直接 OOM 崩溃。这类问题在后台管理系统、日志收集接口、批量导入功能里非常常见。根本原因在于 Node.js ...

Go 中 time.After 导致的内存泄漏:从一次线上 goroutine 暴涨说起

Go 中 time.After 导致的内存泄漏:从一次线上 goroutine 暴涨说起

线上一个用 Go 写的推送服务在运行十几个小时后内存持续上涨,pprof 显示 goroutine 数量从启动时的几百涨到了十万以上,堆内存也跟着水涨船高。排查后发现,问题出在一个看似无害的 select 超时控制上——代码里大量使用 time.After 做超时,但每次调用都会在底层创建一个定时器,直到超时触发才会被垃圾回收。在循环...

Go 服务中 context 取消信号为何没生效:一个常见但容易被忽略的错误

Go 服务中 context 取消信号为何没生效:一个常见但容易被忽略的错误

在 Go 里写 HTTP 服务或后台任务时,context 几乎是绕不开的东西。我们通常用 context.WithTimeout 或者从请求的 *http.Request 里拿 ctx,然后把它传递给下游的数据库查询、RPC 调用或者 goroutine,期望请求被客户端断开或超时后,这些操作能及时退出。但实际开发中经常出现一种情况:明明已经调用了 can...

前大厂工程师辞职环游世界:1人做旅行社交App月入94万

前大厂工程师辞职环游世界:1人做旅行社交App月入94万

OPC案例049 · 一位前大厂软件工程师,自认"从不是创业型的人",一次旅行中感到孤独,做了自己需要的旅行社交App,算清风险账后辞职环游世界:15个月、1个人、无联创无融资,做到月入$140K MRR(约94万人民币)、180万用户、约10万次线下见面。今天拆透这套"把生活方式变成产品研发"的打法:为...

Go 服务中使用 http.MaxBytesReader 限制请求体大小的正确姿势

Go 服务中使用 http.MaxBytesReader 限制请求体大小的正确姿势

线上一个文件上传接口偶尔出现内存暴涨,排查后发现是 http.Request.Body 被直接 io.ReadAll 读取,而没有做任何大小限制。攻击者或者异常客户端只要发一个超大 body,就能让服务端分配大量内存,甚至 OOM。Go 标准库其实提供了 http.MaxBytesReader 来限制请求体读取字节数,但它的行为在超限时和普通 io.Limi...

资源下载

更多资源
优质分享App

优质分享App

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

腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

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

Sublime Text

Sublime Text

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

用户登录
用户注册