内存管理
已收录文章:10篇
-
Golang · Go问答 | 2个月前 | golang · 并发编程 · bytes.Buffer · 内存管理 · Go问答 · bytes reset bytes.Buffer Go内存 切片别名Go 里把 bytes.Buffer.Bytes() 返回的切片保存下来,再复用 Buffer 写下一条消息,旧数据为什么会跟着变化?关键在于 Bytes 返回的是底层数组视图,不是独立副本。本文用消息编码场景说明 Reset、切片别名、Clone 拷贝和并发边界,给出可复查的安全写法。470 收藏
-
Linux 服务器的 swap 使用量升高,不等于内存已经泄漏或必须立刻关闭交换。本文用 vmstat 的 si/so、free 的可用内存、磁盘 I/O 和 /proc/sys/vm/swappiness 组成证据链,区分偶发换出、持续抖动与真实内存压力,并给出可回滚的处理顺序。458 收藏
-
Redis 内存达到 maxmemory 后,淘汰策略决定哪些键先离开。本文从缓存实例的内存告警现场出发,解释 allkeys-lru、volatile-lru、allkeys-lfu 和 noeviction 的适用边界,并给出命中率、淘汰计数与回滚核对方法。420 收藏
-
数据库 · Redis | 1个月前 | Redis · 内存管理 · 故障排查 · 缓存运维 · redis OOM CLIENT NO-EVICT maxmemory-clients noeviction 客户端驱逐Redis 写入报 OOM 时,先区分数据键无法淘汰与客户端输出缓冲触发驱逐。本文用 CLIENT NO-EVICT、maxmemory-clients、maxmemory-policy 和 INFO memory 还原两条故障链,给出核对命令、控制连接保护和回退边界。376 收藏
-
Java 25 的 Foreign Function & Memory API 用 MemorySegment 表示连续内存,用 Arena 管理堆外区域的生命周期。本文演示 confined、shared 和 automatic arena 的边界,并用关闭后的访问异常完成验收。366 收藏
-
Go 代码用 slices.Delete 移除大对象后,进程内存为何仍然居高不下?本文从底层数组、切片尾部引用和长生命周期缓存三个角度解释原因,并给出可验证的清零与缩容方案。344 收藏
-
tmpfs 挂载点明明还有空间,应用却可能报 No space left on device。本文按容量、inode 和内存回收三个维度,用 df、df -i、findmnt 与内核回收指标定位真正的限制,并给出可回滚的调整顺序。158 收藏
-
数据库 · Redis | 1个月前 | Redis · 内存管理 · 故障排查 · 缓存运维 · redis OOM CLIENT NO-EVICT maxmemory-clients noeviction 客户端驱逐Redis 写入报 OOM 时,先区分数据键无法淘汰与客户端输出缓冲触发驱逐。本文用 CLIENT NO-EVICT、maxmemory-clients、maxmemory-policy 和 INFO memory 还原两条故障链,给出核对命令、控制连接保护和回退边界。152 收藏
-
Go 1.21 引入的 clear 内置函数适合批量清空 map,但它并不等于释放底层容量。本文用缓存复用、重新分配和基准测试说明三种清理策略的边界。134 收藏
-
Go 里用 slices.Delete 删除元素后,切片长度变小不代表底层数组立刻释放。要结合 Go 版本、元素类型、尾部引用是否清零和切片是否继续持有容量来判断 GC 边界。本文从批量过滤场景拆开删除、复用与内存回收的关系。112 收藏