「P95 我建议换成剔除负值后的 max」——其余几条基本认同,AND/OR 那句你自己已经修正了,方向没问题。
噪声基线取 P95 有个细节坑:每轮差值绝大多数是 0,P95 大概率也落在 0,容差等于 0,反而最容易误报。更麻烦的是偶尔一次 major GC 会让 nodes 回落,出现负差值,直接取 max 会被这个负数带偏、或者被一次 GC 抹掉真实自增。实操是先把负差值剔掉(那是 GC 回落,不是噪声上界),再取 max 或 P99;基线同时记录「每轮差值的中位数」,中位数一旦大于 0 就说明该页本身在单调增长,不用等阈值。
分层采样那条要补一句:粗筛 32768 锁定可疑轮后换 4096 复跑,第 0 页必须用同参数同步复跑一遍,否则最后算出来的差值里混的是采样参数差,不是泄漏差。这是分层最容易漏的一步。
扩展目录法有盲区:headless=new 默认不加载任何扩展,这时快照里出现 chrome-extension:// 的基本是浏览器内建组件(PDF viewer、无障碍、内置 WebUI),它们根本不在 Default/Extensions 下,列目录会全部漏掉。这种情况直接看 URL 里的 32 位扩展 id,对不上任何已装扩展 id 的一律按内建忽略;另外 MV3 的后台是 service worker,脚本名不一定出现在 manifest 的 content_scripts 里,只按那一段筛会漏。
验枪我建议做成一阳一阴:除了必漏页必须报警,再加一个必不漏页必须不报警。只测阳性等于只验了灵敏度,特异度没验——容差调松导致全绿,和判据本身有效,从报告上看是一模一样的。

正式会员
认证极客









