性能优化
已收录文章:32篇
-
io_uring 的 SQPOLL 能让内核线程轮询提交队列,减少提交路径上的系统调用,但它不是无条件加速。本文用 sq_thread_idle、SQPOLL 唤醒、提交批次和 CPU 观测,核对多队列程序何时受益、何时只是空转。484 收藏
-
Redis 7.4 项目里把集合成员一次性读回应用,容易让单次请求和客户端内存一起抖动。本文从 SMEMBERS 迁移到 SSCAN,说明游标循环、COUNT 提示、重复项处理和上线复测的边界。483 收藏
-
WebGPU 页面第一次绘制出现短暂卡顿,通常不是 Canvas 画布本身慢,而是浏览器首次创建 shader module、render pipeline 和相关资源时发生了编译与校验。本文从首帧时间线出发,说明如何拆分准备阶段、预热 pipeline、缓存可复用对象,并处理设备丢失与低端设备边界。464 收藏
-
从触底加载重复请求的现场出发,拆开 rootMargin、哨兵节点和请求状态之间的关系,给出可验收的去重实现与异常处理边界。462 收藏
-
Redis 8.6 新增 HOTKEYS,可以在指定采样窗口内按 CPU 或网络指标找出高频访问键。本文从缓存延迟升高的现场出发,演示 HOTKEYS START、GET、STOP 的最小用法,解释 COUNT、DURATION、SAMPLE 与 SLOTS 的边界,并给出集群分片、误判和上线验收清单。456 收藏
-
大文件上传到底该让浏览器把数据交给业务服务,还是直接送到对象存储?本文从流量路径、分片重试、权限边界和完成校验四个维度比较两种方案,并给出基于 Blob.slice、预签名 URL 与 uploadId 的可落地实现边界。448 收藏
-
Python 3.14 的解释器池用多个独立解释器获得真正的多核并行,但任务函数、参数和返回值都要经过序列化,解释器之间也不能直接共享可变对象。本文用 CPU 计算与故障任务拆开说明通信边界、异常处理和上线前验收方法。447 收藏
-
处理大文件上传时,反复 bytes 切片会让内存峰值和复制次数一起上升。本文用 Python memoryview、bytearray 和 readinto 组织固定缓冲区,核对切片视图、尾块长度、复用缓冲区和异常恢复边界。413 收藏
-
PHP 报 Allowed memory size exhausted 时,先区分单次峰值、批量数据过大和长期增长,再用 memory_get_usage、memory_get_peak_usage 与分段日志定位,最后验证回收和配置边界。413 收藏
-
页面关闭、跳转或切后台时,上报请求容易被浏览器中断。本文对比 navigator.sendBeacon 与 fetch keepalive 的适用边界,给出请求体、响应处理、幂等键和重复提交验收方法,帮助把离开页面前的轻量数据上报做得更可靠。379 收藏
-
并行流不是把线程数调大就会变快。本文用同一批数据对比串行流与并行流,解释 ForkJoinPool.commonPool 的参与方式、任务粒度、共享资源和压测边界,帮助你在真实服务里做出可复核的选择。378 收藏
-
PHP 8.5 新增 curl_share_init_persistent(),可以在请求之间复用 cURL share handle,减少 DNS 和连接初始化成本。本文从共享选项、FPM 进程边界、连接锁和灰度指标出发,给出一套可回滚的验收方法。363 收藏