整机Normalized CPU:方案与结果

---
type: devlog
title: Fixture Lab 整机归一化 CPU 单项方案与验收
date: 2026-10-18
status: validated
kind: plan
stage: P4
evidence: E1
metric: ios.device.cpu.total.normalized
---

# 整机归一化CPU:同源核数、一次发表与实际图形

## 1. 当前角色、基线与边界

Owner授权本AI承担方案、开发及分别执行的独立验收,不派子代理。当前main5b0059a、暂存空、1089共享WIP保护;前项Raw五新轮与独立1461实际Swift消费者通过,留存15/66(启动12/12限定、新非启动3/54);历史10/54旧7未重验不叠加。GitHub/Production九页逐字一致,GitLab前批只推一次失败,不重试;通知成功。下一只ios.device.cpu.total.normalized与正常TotalCPU图形,不顺带PerCore或进程CPU,不借前项样本。

当前本机b182/手机Lab90.21.11不先改安装。Raw已验收语义与数值冻结,旧失败/封存/原件/回滚保留。不得整文件提交共享realtime WIP;从HEAD构造候选,工作区仅叠本项明确锚点。没有新环境/工作树/子代理/常驻清理,网站不并发设备采样。内测按Owner指示暂缓公证;Gatekeeper/GPL/非整GUI主线全量构建与镜像同步缺口继续分列。

## 2. E1问题与先诊断后修复

源码显示_normalized仍用SystemCPUUsage原总量及可缓存EnabledCPUs,未随Raw新鲜门逐窗口发表;首次合法后,无新源时显式totalCPUNormalized可继续旧值,负值/过量/小数核数也未遵守Raw严格门。正常TotalCPU曲线读totalCPU兼容别名;b182在Raw缺时已隔离该别名,但显式Normalized/派生链不能因此视作通过。先在当前main与实际安装归档分别用相同小型夹具取证,记录每字段/quality与Raw,不把E1/E2诊断当真机失败轮。实际输出以独占source-diagnostic、installed-diagnostic为准,结果不得预写。

## 3. 新版本公式与兼容

新增显式marker sysmontapDeviceTotalCPUNormalizedPublicationPolicy=device-total-cpu-normalized-source-once.v1,独立于既有Raw marker;只有新marker数据进入新语义。新marker一旦见过,缺marker或未知值必须missing,不回落旧缓存;无新marker的历史回放逐字保持旧规则,不追认其验收。

Raw公式仍CPU_TotalLoad不变。新Normalized=**同一个已验证、当次新发表的Raw / 同一原始记录的EnabledCPUs**;EnabledCPUs严格整型1..CPUCount,CPUCount整型1..64、逐核完整且0..100、总量和一致及原Raw全部身份/双角色/窗口/TTL/一次end门不变。结果须有限0..100,不截断、不借前窗分母;非法分母、Raw未新发表、溢出、缺/错marker均missing。合法准备就绪的0保持0,初始化0仍warmup。计算不取整,模型/JSON往返原Double,CSV原有精度容差≤1e−6。

实现可在Raw observation增加仅有新marker时的原样policy槽,不改变Raw指纹、选择的完整窗口或数值。Normalized从同次Raw publish audit投影O(1),不再开连接/重扫/重新consume;显式Normalized与旧totalCPU别名同值同缺,quality/scope/device/percent一致,额外独立freshness段标Normalized策略和同源分母。Raw策略仍不自称验收Normalized;新Normalized独立门承接。MetricEngine派生Normalized也在新marker下用同一payload严格校验,不复用跨窗口Enabled缓存;其他指标/历史路径不改。

## 4. 软件、性能、安装门

先文档后代码;回归覆盖:同源算术/0/100、六核Raw>100不受影响;新旧marker;小数/布尔/0/负/缺/超CPUCount分母;无源/重复/迟到/时钟及代际异常;不同角色同end起点微差;归一化>100;超大整数;Raw不变量;实际Swift模型、totalCPUPercent图形数据入口、Normalized显式字段、Codable/CSV/JSONL缺值不被别名填回。既有Raw全套与相关CPU/内存回归不减少,不改旧测试数字。

从HEAD生成候选源快照,完整源码分文件回归与独立反例;再只替换安装归档中的明确CPU模块并跑实际归档控制,其他模块逐字核同,最后内部b183签名包/独立解包/单址覆盖/完整安装树比对。若整个GUI没有从主线全量重建,必须继续明示。手机Lab90.21.11不升级;无工具变更不伪造新的工具资格,实际当前sourceDigest与既有四资格/资源收据仍需核同。

复杂度每原始CPU记录O(核数≤64)+既有pending6,发表新增O(1)状态,无新增采集连接;额外常驻目标≤1MiB。10000同规模完整consume+snapshot配对,平均/P95≤1ms;报告首响应/最大/总时长/CPU/RSS/IO,缺证写unknown,不用平均遮长尾。源码单文件≤120s/192MiB,Swift编译≤120s/运行≤60s,签名≤30s,设备每call≤8s/外层有界;串行1。离线最终全量证据审计资源独立列,不冒充采集192MiB门内。

## 5. 真实产品、独立参考、五新轮门(准入尚未开放)

仍正常Perfowl UI开始/同生命显式Lab配方/停止完成封口;参考为自有App独立host_processor_info整数USER/SYSTEM/IDLE/NICE,保留原生调用区间/释放/完整read-encode-append;不是物理仪器或Apple私有实现等价证明。参考counter构成Raw上下界,再除同源EnabledCPUs;正式观测处理器数与源CPUCount/EnabledCPUs关系逐点留证,不把硬件型号常数当分母。仅Raw参考宽≤18点、端点/内部gap≤30ms可比较;不可比记unassessed,不填正常。Normalized普通外扩max(3个百分点,15%)、严重max(6个百分点,30%),同源公式另按精确算术核,不以宽松参考遮公式错误。

先独占新140秒诊断及分离原件/SQLite/seal/独立counter/CSV/实际Swift/图形入口核对,工具或诊断失败不启正式。正式仍五个新生命/Session,15..135秒固定240机会/120槽,每轮新源≥238、完整≥119、普通≥228、gap≤1.5秒,严重含全尾部0、来源违规/拒绝0、连续偏离≤2。采用已验低—中负载baseline20→1×25%/2×35%/2×50%各30→join/recovery30,仍每轮前600秒冷却及原热保护,不引入高持续负载声明。五轮命名与工具预pin须在实际采样前另段冻结,首失败即停,不重跑消费namespace,不借Raw五轮或诊断填分母,不自动补样。

同时核显式Normalized、totalCPU别名、实际Swift totalCPUPercent/Normalized字段、在线wire、CSV/JSONL/SQLite/派生及正常UI确选TotalCPU图。正常图的来源字段/每点图形入口从实际正式wire分别验证,截图仅证明界面存在,不伪装独立数值真值。

## 6. 容量、证据、闭环与下一项

每批开始/批末/持续30分钟检查可用≥10GiB且≥预计新增两倍。当前主机约55GiB;手机活动run已到64,需要采样前明确保全式归位合同,不删失败/Raw/引用/封存,不扩大64门。仅分析完成、原件和主机副本/manifest/export核同的run在同容器独占retired目录重命名保留,前后全SHA;新事务不得覆盖旧收据。

软件与新的正式五轮及分离最终审计通过后才计16/66;随后窄提交同SHA双推(GitLab一次)、Canonical知识/开发记录/不可变HTML/时间线/总览/Home/精确暂存树构建0死链、Production线上逐字核、一次中文交付通知。提交/镜像/发布与指标结论分列。未通过当前不开始PerCore;全66目标保持active。

## Implementation Update · 2026-10-18 · E1实证与首个候选

主线与实际b182归档分别复现:一次合法源后10秒显式Normalized仍10,Raw/正常图兼容别名已missing;负Raw→−0.166667、小数分母→40、超Raw范围→116.666667、合法后缺分母仍10。只证软件缺陷,尚无Normalized真机验收。新候选按§3加独立marker、同源分母/严格量程、同Raw新发表投影和独立audit;Raw缓冲/取窗/数值不改,未开新服务。

首focused控制导入误写MetricEngine(实际RawMetricEngine)导致导入失败;R1仅修测试导入后24/25方法通过,另一处测试误按scopes/units读取(实际wire字段metricScopes/metricUnits)导致KeyError。两个原日志/源码快照保留,修正夹具字段进入独占R2回归,未为测试改产品行为,也未安装或开始采集。完整回归逐文件120秒/192MiB直接RSS门显式解析实际time输出;新候选源在执行前冻结SHA,不追认原失败。

R2完整回归已跑至43文件/737方法,新增25方法和既有Raw控制通过;在test_frame_statistics_admission因快照缺少既有internal/acceptance/nonstartup-v2.json于setUpClass失败,非产品数值/行为问题。原R2结果保留;R3只补HEAD中测试所需只读上下文(internal/acceptance、MacApp/scripts、tools/validation/sw1、真实43Swift Core与Fixture工具),产品/测试源码不改;重新预pin完整快照、对子进程继承PYTHONDONTWRITEBYTECODE,另名完整回归。不能把R2说成全过。

## Validation Update · 2026-10-18 · 完整源码与实际Swift准备

R3完整源码132文件/2313方法通过,逐进程120秒/192MiB门均内。首Swift核对器在编译前因写死43个Core源文件而断言失败;实际HEAD与候选均为36个,逐字核同。保留原失败命名空间,另名R1仅修文件数量断言与报告计数;没有改产品、安装或设备采集。前述“43Swift”是工具说明计数错误,不作为已验证事实。

## Decision / Implementation Update · 2026-10-18 · 同源元数据也须同窗

实际36个HEAD Core Swift/9消费者控制通过;首次性能基线快照漏startup_trace_codes.json,失败保留,补全部HEAD资源到另名基线后10000完整consume+snapshot平均/P95前0.153590/0.220907ms、后0.163919/0.229726ms,新增保留对象226B,均内;新13独立来源/完整240格/尾部/空洞控制通过。归档451适用控制通过(原5历史/源码依赖排除保留),内部b183签名/独立解包/单址覆盖通过,未采手机数据、未计指标通过。

后续额外E2反例发现:两条源在同次snapshot前到达且Enabled分别6/3,选首窗Raw60/Normalized10正确、audit分母6,但wire enabledCPUCount仍缓存为3。数值正确不应掩盖解释字段跨窗。本批在正式准入前补充§3要求:新Normalized策略下cpuCoreCount/enabledCPUCount与totalCPUNormalization描述也从已接受同窗audit取得,无合法新Normalized时置空;历史未marker保持原规则,不改Raw数值或窗口。新增跨pending分母、缺源与非法归一化元数据反例;保留R3/b183证据,不回写,R4复跑完整回归与独立消费者/归档控制、内部b184替代b183后才允许诊断。

## Capacity contract · 2026-10-18 · 六旧run保全式归位

采样前仅将前项Raw的Lab11诊断+R4五个已完成且已验收run(共6个、30个原文件)归位到自有容器独占retired子目录cpu-normalized-preparation-20261018;不删字节、不重写内容/导出、不同名覆盖。每件先比主机封存副本/原manifest及导出,再单次rename并全SHA后核;原活动64→58,诊断1+正式5最大64,不扩大容量门。目录、源/工具预pin、每call8秒/事务120秒/串行1,漂移或失败停。只保全该明确集合,不按年龄/成功率丢样;原Raw封存文件不改。

R4完整132文件/2315方法通过。扩展Swift元数据控制R2的前8例通过,旧Raw marker历史回放第9例因夹具误期望缺Raw时仍有公式标签而失败;实际历史规则本就标签空,产品未改。原失败/二进制/输入保留。R3仅修该预期为空、核36源与harness SHA后复用已编译真实Swift二进制,不重建、不采样。实际JSONL导出含export_meta头与event封套,核对器需按recordType筛event再解event.sample,不把元记录计样本。

R4后续软件/实际Swift9例/独立13+4控制/453适用归档/新b184签名包已通过。首次安装r1在任何退出/替换/设备操作前停止:重新打开b183后未选设备,按钮“播放”禁用,旧安装夹具误要求必须enabled。只读树明确未选设备/未选App、非“停止”采集中;r2仅在明确未选设备+“播放”时接受空闲状态,仍核产品进程、正常退出及无遗留后才替换。原失败保留,无重复采集或强杀。

## Diagnostic admission · 2026-10-18

b184单址覆盖及完整安装树同包通过;Developer ID strict签名/独立DMG挂载通过,公证暂缓/Gatekeeper拒绝/非整GUI主线全构建仍分列。R4源码132/2315、实际Swift9、独立来源/固定格13与分离反例4、453适用归档通过,原5排除明确保留并在b183归档再次复现旧receiver反例。最新10000完整路径均值/P95=0.154763/0.211979ms、最大/首点1.068894ms,retained226B增量,进程RSS56,737,792B(与基线55,713,792B独立进程比较,不等于隔离模块分配),不掩盖峰值。

现在仅准入独占normalized-diagnostic-1 / norm-cpu-diag-1,140秒固定低中负载;先上述6run保全容量58,再正常UI确选TotalCPU和目标、一次Start/URL/Stop,同生命/源/封口/SQLite/独立counter/三个实际Swift字段与元数据/CSV+JSONL核同。工具已预pin,设备外层230秒/192MiB、每call8秒,诊断失败即停;未准入正式五轮。Lab90.21.11及已留存四资格/资源收据复用,不声称重做工具资格;实际运行sourceDigest仍逐件核。

## Formal admission · 2026-10-18 · 五个新生命/Session

唯一140秒诊断已过:新源240/240、完整120/120、普通235/240、不可评估5、严重/来源违规0,gap 0.5秒。原件与副本、seal/SQLite、分离counter算术/CSV/derived及实际Swift 292个sample(图形别名+显式值+Raw/同窗元数据/Codable/CSV/JSONL)均过;仅E4诊断,不借正式分母。6旧run的30件前后全SHA同、导出不变、删除0,容量64→58;本诊断后59。

现在正式冻结唯一formal-queue,normalized-formal-1..5 / norm-cpu-formal-1..5,140秒原低中负载、固定15..135秒240/120,每轮前600秒冷却,源≥238/完整≥119/普通≥228/gap≤1.5/严重含尾部0/来源违规拒绝0/连续偏离≤2及参考mean/P95≤1ms不变。每轮正常UI Start/URL/Stop各一次、独立同生命/封口/算术/实际Swift后才能下一轮;首失败停止,不重试或替补,不借诊断/Raw轮。运行源/监督/安装core预pin,每轮空间/30分钟门,活动最多64;预计63–70分钟。未完成五轮及分离最终审计前仍15/66,不进入PerCore,网站不并发采样。


## Independent Acceptance Update · 2026-10-18 · 整机Normalized CPU五新轮限定E4

**合同及实际执行日期均为2026-10-18;仅 `ios.device.cpu.total.normalized` 本场景通过。** 新设计留存15→16/66(启动12/12限定、新非启动3→4/54),历史非启动10→11/54仍含旧7项未重验,不与新口径叠加。Raw已独立验收;本批不借Raw五轮、诊断或伴随PerCore/进程CPU数据。Normalised质量仍candidate,deviceReadPointProven=false;实际正常TotalCPU图的数据入口为totalCPUPercent兼容别名,不能称物理精度或任意负载/环境100%保证。

| 新正式轮 | 新源可用 | 完整槽 | 普通参考点 | 不可评估 | 最大gap秒 | 严重含尾部 | 来源违规 | 全会话sample |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| 1 | 240/240 | 120/120 | 235/240 | 5 | 0.5 | 0 | 0 | 292 |
| 2 | 240/240 | 120/120 | 236/240 | 4 | 0.5 | 0 | 0 | 292 |
| 3 | 240/240 | 120/120 | 235/240 | 5 | 0.5 | 0 | 0 | 292 |
| 4 | 240/240 | 120/120 | 238/240 | 2 | 0.5 | 0 | 0 | 292 |
| 5 | 240/240 | 120/120 | 234/240 | 6 | 0.5 | 0 | 0 | 292 |

五新生命/Session,140秒固定baseline20→1线程25%/2线程35%/2线程50%各30→join/恢复30,每轮前600秒冷却,实际合计3000.031秒。固定15..135秒240机会/120槽、源≥238/完整≥119/普通≥228/gap≤1.5秒/严重含尾部0/来源违规及拒绝0/连续偏离≤2。独立host_processor_info原始整数tick参考,保留原生调用区间和释放;Raw包络宽≤18点、端点/内部gap≤30ms才评估,再除同窗EnabledCPUs。Normalized普通外扩max(3个百分点,15%)、严重max(6个百分点,30%),不可比明确unassessed,不造0、不插值、不按产品值择近参考、不缩分母。它是独立API异常门,不是独立物理仪器或Apple私有语义等价。仅低—中负载成立,持续4×75%高负载未验。

新策略`device-total-cpu-normalized-source-once.v1`下,**Normalized=同次新发表Raw/该完整原始记录EnabledCPUs**,不缓存分母/不重复源/不截断;Raw严格合法、Enabled/CPUCount整型且范围正确、结果有限0..100,0为合法测量,初始化零仍warmup。无新源/未知或缺marker/非法分母/归一化>100均missing;Raw>100但≤100×核数合法且不受Normalized独立拒绝影响。显式Normalized、totalCPU图形别名、quality/scope/device/percent、cpuCoreCount/enabledCPUCount/公式标签全部同源同缺,不从另一pending行或旧窗口解释本次值。无新marker的历史回放原规则保留,不追认其验收。

E1/E2诊断在主线与实际b182归档分别复现显式Normalized旧值续10秒、负值/小数或缺同源分母错误;Raw缺值与旧兼容图别名当时已隔离,不能说Raw重新失败。R3数值正确但额外反例发现pending两行Enabled6/3时,首窗Normalized10的wire核数却缓存为3;R4在正式采样前修元数据同窗,不掩盖数值正确之外的解释错误。新增27方法覆盖同源/量程/0/100/Marker/跨pending元数据/历史/Raw不变量;完整源码132文件2315方法、453适用实际归档控制、13独立来源/完整240格/空洞/尾部与4分离counter/CSV/derived反例通过。4源码文本门在完整源码另过,1旧receiver矛盾在b183归档再次独立复现,原5项排除和全部夹具失败保留,不宣称所有历史归档测试均通过。

原件与副本逐SHA、Lab manifest/export/释放、核心/桥接/产品seal、Raw最终序列与SQLite quick_check/逻辑检查点通过;第二套不导入产品/评估器的整数counter算术逐点独立核包络、Normalized算术/同源分母、CSV/derived;对全部1460个正式wire sample运行预pin真实**36个Core Swift源文件**编译的模型、Codable、totalCPUPercent图形输入别名/显式Normalized/Raw及同窗元数据,实际CSV和JSONL导出缺值不回填。首诊断292 sample另列不算正式;六旧Raw已验收run30原文件保全归位64→58,前后全SHA同、导出不变、删除0,最终最多64活动run。复用原Raw不可变封存清单并复算明确引用的36个Lab/导出文件,不重复全扫69954旧件;旧封存manifest SHA仍相同。

完整consume+snapshot10000条配对前→后平均0.153590→0.154763ms、P95 0.220907→0.211979ms,均≤1ms;后最大/首点1.068894/1.068894ms、吞吐5530.5/s、CPU秒1.801406、直接RSS56737792B,projector保留对象37455→37681B。独立进程RSS变化不能冒充模块隔离分配;I/O字节unknown、系统block计数按原JSON保留。30000条突发pending仍上限6、不线性保留;正式参考完整读/编码/追加mean 0.126256–0.137809ms、P95 0.226250–0.231542ms,最大38.535167ms如实披露。每轮采集230秒/192MiB内;分离最终离线审计22.747秒/RSS163811328B独立列,不冒充采集预算内执行。

Mac内部b184已正常退出后单址覆盖,strict Developer ID、DMG独立解包、完整安装树一致;core SHA `1994671c4cd6469e09324290813aba6e1ad44cbdc9e15d3414de2d975846fa63`,DMG SHA `58e28fddb83858efa3cc5cca694cc6229afe1144d99262f66049f5a5539c4047`。只一个安装路径,dist仅当前包+校验,旧182/183回滚私有保留。本批明确五个CPU归档模块,其它模块/12条目核同,保留既有网络/显示状态;**非整GUI从main全量重建**。Owner暂缓公证、Gatekeeper拒绝/GPL合规与整GUI/main差异单列,不称正式对外分发完成。手机Lab90.21.11未升级、未新建环境或常驻服务、未删失败/Raw;工具既有四资格和资源收据核同,不伪称重做工具资格。

**下一仅PerCore CPU**,另立逐核索引/独立参考与新轮合同;进程CPU及其他指标不顺带通过。指标验收与提交/双推/文档/Production/通知交付状态分列,以实际收据为准;GitLab每批一次,不强推或因失败重试。全66目标仍active。

## Performance audit supplement · 2026-10-18 · 真实来源形状配对

前述E2最小CPU夹具完整路径另列,不把其负载当完整采集。补用本批唯一诊断的实际primary原始记录(2875B,保留System/各内存策略与原始字段形状)在同CPU/时钟/序列合成输入下各10000次完整consume+snapshot,前后源template SHA一致;此为E2软件负载,不是新增真机轮。均值0.171308→0.196664ms、P95 0.237952→0.276458ms、总时长1.885600→2.146762秒、吞吐5303.4→4658.2/s、CPU1.876598→2.135788秒;是约0.0254ms开销增加,不称提速。后首点/最大1.233615ms、RSS59,777,024B,前RSS60,641,280B,独立进程读数非隔离分配;tracker5599→5750B(+151B),30000条突发容量6、丢弃29994,后平均/P95/最大0.115699/0.148106/0.536186ms。均值/P95≤1ms及有界保留门通过,不承诺每次≤1ms;I/O字节unknown。

封存工具首次通用枚举混入仍在构建的delivery目录与自身stdout,已在生成清单前终止,保留失败收据。新窄范围清单封存55977个已终态私有件;活动构建/交付收据与明确的stdout流不列入,自身不列入。后续交付补充结果另在delivery登记,不回写任何已封存来源/失败/会话。