/2,299 字/阅读约 8 分钟
不杀,先让路:内存守护的降级档是怎么长出来的
一台 32GB 的开发机长期在 10% 可用内存附近徘徊——"临界才杀进程"意味着天天在悬崖边保持不动。这一轮改版给守护脚本加了降级档:警告线以下不杀,先把最大的非前台进程降优先级、交还工作集;再加"你正在看的应用全家豁免"、和一次真实搁浅事故修出来的状态落盘。三个决策都不是设计阶段想出来的,而是上线后逐次事故长出来的。
一台 32GB 的开发机长期在 10% 可用内存附近徘徊——"临界才杀进程"意味着天天在悬崖边保持不动。这一轮改版给守护脚本加了降级档:警告线以下不杀,先把最大的非前台进程降优先级、交还工作集;再加"你正在看的应用全家豁免"、和一次真实搁浅事故修出来的状态落盘。三个决策都不是设计阶段想出来的,而是上线后逐次事故长出来的。
一份脱敏的真实项目复盘:用 69 份文档、1067 条标题、560 份验证留痕,在 AI 动手写代码之前搭出十一道防线——目的不是限制 AI,而是敢让它碰生产系统。
博客的文章检查脚本经过几轮校准后已经很准,但一个问题把我问住了:"它以后每次都会跑吗?"本文记录把检查装进部署门禁的完整过程——为什么"红叉警告"不算强制、怎么按变更类型分流检查强度,以及如何用临时分支和负测试证明门禁"会拦、且拦得准"。
跨会话的项目记忆文件会像所有"活"的文档一样膨胀。本文记录一次从 26KB 到 14.7KB 的安全精简:为什么"热度评分淘汰"不可行(使用不可观测、低频高损会误杀),改成"准入三条",以及"先归档 → 先落点 → 后删除 → 再对账"的搬迁式精简流程与两个对账脚本。
一条 52 秒的产品短片,从「靠感觉做」变成「按规范复现」:四件套的实测参数、为什么每段时长必须是 GIF 的整数遍、音效为什么全部本地合成而不进素材库、指针为什么要放大到界面宽的 4.5%,以及用「承接(carry)」替代「淡入淡出换片」的改造过程。