外观
平均FPS会话统计的来源、独立参考资格与新五轮验收方案
决策与边界
Jitter已正式通过,整体38/66;该项交付回执确认GitHub提交963aa8d9核同、GitLab一次失败、网站/通知配置欠项partial,Owner已允许保留欠项继续。当前唯一项为平均FPS ios.frame.fps.average,新正式0/5。当前AI按Owner授权依次承担方案、实现、测试及证据分离核验,不创建子代理、不再请求清除易失测试预览授权。Raw/失败/封存/引用证据仍保留。
这是会话派生统计,一轮只有一个最终摘要;不是1Hz逐点FPS曲线。继续用既有签名Build211/Lab31、单一标准安装、Display Performance 19项请求、1Hz源健康观察,截图/启动专项持久化关闭。无需产品改动时不制造新包;若发现产品异常,先文档化最小修复及匹配测试,再构建并独立验证内部签名包,公证仍按Owner指示暂缓。下一项FPS≥18占比在本项通过并完成交付尝试前不验收。
原始字段、公式与质量合同(实施前冻结)
- Registry:scope=
foreground-device、unit=frames-per-second、source=frame-pipeline、sourceKey=1000/mean(FTime)、definitionVersion=frame-report.candidate.v3。当前ActivityTrace报告实际算法标签为frame-report.candidate.v4,另有frame-statistics-admission.v2准入标签;保留Registry兼容标签,不偷换报告实际算法。 - 原始来源:
com.apple.instruments.server.services.activitytracetap/DTX,pymobiledevice3 11.3.1ActivityTraceTap传输,Perfowl自研ActivityTraceFrameLifetimeRawAdapter及FrameLifetimeDecoder.decode解析。原始Rawdisplay.frame-lifetime.raw包含end/previous Mach ticks、numer/denom、来源/显示/目标/epoch/重连身份、quality。独立审计不导入产品算术实现。 - 每个可准入间隔的纳秒为
d_i = floor((endMachTicks_i - previousPresentationMachTicks_i) × numer / denom),其FrameTime为round(d_i / 1_000_000, 6)ms。需严格来源身份、递增顺序、实际前驱和时间基核同;每个新生命/epoch/重连/显示边界的未知间隔不跨界推算。 - 报告准入按现有v2:quality属于
valid/candidate/candidate-alias/degraded/partial,时间戳合法且比当前段前点新,明确存在有限正FrameTime。ActivityTrace缺FrameTime不从时间戳补算。unknown/warmup/discontinuity/source-gap/not-foreground/missing、负值、零、非有限和布尔均不进入统计。候选/降级输入保留实际计数和质量;异常来源不因候选标签豁免。 - 设准入间隔数N、和S纳秒,
AvgFPS = 1_000_000_000 × N / S = 1000 / mean(FrameTimeMs)。使用全部完整Session准入间隔,过渡与尾部不删、不缩分母;不能对每秒FPS求算术均值,也不能以Session墙钟或显示标称Hz代替S。N=0则null;N>0且S>0才有有限正值,0不是本统计的合法测量值。 - 产品当前浮点累计不额外取整;离线用整数纳秒和有理数复算,数值容差固定
max(1e-6 FPS, abs(expected)×1e-9),平均FrameTime容差1e-6ms;只覆盖浮点累计差异,不是物理准确度容差。 - 核对
frame-events-live.jsonl与全局Raw逐行一一投影(adapterSequence除外的实际投影规则),其SHA/字节、report-seal、product seal、SQLite提交边界一致。frame-report.json、report-final.frameSummary及report-stat/report-final.statReport的Avg(FPS)、算法、准入和candidate质量核同,coverage sampleCount等于实际N。该统计无1Hz CSV列时不造列或用live FPS替代;全发表Raw/CSV/Session源链继续保全。
参考资格与测试App用例
- 首先只读已有封存样本用于工具/schema及参考资格诊断,正式轮次+0,不重测或回改Jitter。已有测试App已记录每个Metal drawable真实presentedTime、请求/提交/GPU/回调及双钟bracket;phase0请求30Hz20秒、phase1正常60Hz40秒、phase2每12回调80ms延迟40秒、phase3恢复60Hz40秒。请求频率/回调/GPU完成都不充当上屏事实。
- 参考必须覆盖完整产品统计:对全部源事件建立绝对/连续Mach双钟桥,两个不确定界限都在100µs内才唯一配对。每个产品准入间隔的前驱和端点须对应连续相邻Metal presented行;遗漏/额外/歧义、无法覆盖的开头/结尾、回调延迟期间系统事件均拒绝完整资格。单独报告区间内外未配对数,不删除不利端点。只有全统计样本集合成立才比较独立AvgFPS。
- 若完整Metal参考合格,固定其对应序列与全会话窗口、误差由端点界传播:Avg=N×1e9/S,S变化上限为每个独立连续段两端总误差之和,按最坏界直接计算参考区间,不拟合偏移或事后调阈值;软件数值容差另列。实际独立完整参考可用时必须使用,不能转无参考绕过差异。
- 当前Apple Animation Hitches超既定805,306,368B资源门、Frame Lifetimes多配置无可用事件/attach失败、Display负载e01仅0.331324秒断连,均有已封存实际证据;这些配置无法覆盖平均FPS的完整Session,不重跑同配置或放宽门槛。仅在出现新证据支持不同可行配置时另立资格方案。
- 只有本指标的Metal完整覆盖实际检查失败,且当前其它实际可用路径亦无法提供完整同层同窗对照,才另写本指标限定环境的参考决策。依Owner已授权政策,无完整参考且新五轮产品正常即可计正式通过并标记
NO_REFERENCE_ACCEPTED_OWNER_POLICY、referenceAccuracyValidated=false、ownerReviewRequired=false。不能直接继承Jitter的无参考结论,不能称永远不支持或硬件故障。
新五轮合同
参考方式决定并落盘后,建立新独占attempt和run前缀avgfps-20261023-a01-r1…r5。每轮唯一冷请求、正常结束已核自有生命至多一次、新生命、新标准Session,一次Start/Stop,完整140秒p95-tail-v1。所有旧数据全SHA、真实容量/64run余量与请求状态、0活动Session、签名/版本/通道身份核同;两端可用≥10GiB且≥预计新增60MB两倍。五轮不能用旧Session拼接或失败后补轮。
- 每轮封存完整Session及测试App六件、intent/claimed、gate镜像;所有旧SHA不变,终态释放/idle,无pending/part。前后清单和容量链真实读取,不复制上轮数值冒充实时检查。
- 实际CapturePlan请求AvgFPS,1Hz、controlled cold launch和禁用项核同。准备20秒后固定120个1Hz健康观察槽,无跳槽、最大发表间隔≤2秒;这些是源/调度覆盖门,不把120个点冒称120个AvgFPS独立样本。
- 完整Session源事件≤25,000,实际准入间隔至少1,000,异常来源/身份/序号/非法时间基为0;全部准入间隔独立整数/有理算术、投影及最终各摘要消费者核同。未准入点计数原样列出,不删Raw。数据异常则失败,不能由参考缺口豁免。
- 固定四phase内去掉各端2秒,仅取前驱和端点都完整位于区间内的间隔,分别复算产品响应:phase1比phase0高至少1.5倍,phase2低于phase1的0.9倍,phase3高于phase2的1.2倍且与phase1差不超过15%。固定区间不事后调整;此为负载响应,未获独立参考时不称物理校准。
- 每轮单独通过、五轮汇总再次核五个独立Session、请求/容量链、所有原件SHA和资源收据,全部通过才整体39/66。任何失败停止新队列,完整保留失败与过渡/尾部,再文档化诊断,不能提前进入下一项。
开销、测试与交付
独立工具逐行流式O(bytes+N),整数和及健康计数O(1);Metal资格用已排序时间数组二分,O(N log M),上限25,000行,内存O(M),不用全量复制Raw JSON对象。常规审计目标<2秒,硬门120秒/192MiB,首结果<1秒;采集一次140秒、停止165秒,新五轮约15–20分钟。每轮后及30分钟检查空间,不建新常驻服务,I/O无法观测时unknown。
软件反控:谐均值/算术均值混淆、空流/仅warmup/合法候选、bool/NaN/0/负值、epoch或身份/时钟坏值、实际前驱断裂、精度与数值边界、漏/重排/篡改投影、封口与摘要不一致、参考缺端点/额外行/歧义和输入上限。用约7,240和25,000事件对比有理基线与流式审计的wall/CPU/RSS/吞吐/首响应、长任务与最差输入拒绝耗时;软件通过不计正式指标。
通过后独立逐指标交付:窄提交、GitHub/GitLab同提交(GitLab一次)、知识页/开发记录/新HTML归档/总览/首页/门禁联动、Node24完整构建与生产发布核对、Webhook。已有配置欠项按Owner授权partial继续,正式分发/GPL与公证门不隐瞒。
Implementation Update · 2026-10-23 · 独立流式审计器
已实现internal/acceptance/average_fps/audit_average_fps.py及19项反控(0.003秒通过E2)。整数原生间隔和与有理FPS、Raw→frame-events逐行精确投影、sealed报告/统计/coverage/SQLite边界核同及完整Metal端点覆盖资格分别检查;不导入产品算术。现阶段尚未改产品或安装,未发手机请求、未创建平均FPS正式attempt,仍0/5、整体38/66。独占私有preflight-01仅使用已保全Jitter样本作工具/schema及参考覆盖预核,正式+0;冻结输入和120秒/192MiB监督已准备,实际结果随后追加。
Validation Update · 2026-10-23 · 本指标参考资格决定与执行准入
预核完整保全Session的7,240个产品事件、7,235个准入间隔,原生整数和140,214,904,059ns;独立AvgFPS=51.59936490742552,与产品51.59936490742579在冻结软件容差内。Raw精确投影、seal、SQLite及全部摘要消费者核同;120秒/192MiB监督记录wall0.436937秒、CPU0.423095秒、OS峰RSS41,304,064B、观察异常0、I/O unknown。该样本只作工具和参考资格诊断,不计本指标轮次。
本指标完整Metal检查实际失败:7,210条Metal呈现记录中,产品7,240端点有33个未配对(覆盖外16、覆盖内17),另有3个Metal端点未被产品表达,完整7,235个准入间隔仅7,186个满足相邻配对。因此不得删开头/结尾、缩分母或只比较这7,186个间隔。可控测试App已经提供真实drawable presentedTime、双钟和长尾用例;再加请求/回调/GPU日志不能补成系统层完整参考,具体未配对事件的系统语义仍未知,不归因硬件或产品代码。既存Apple候选的资源超限、attach/schema无事件及Display断连事实均保留,不能提供本指标完整Session对照;没有新证据支持重跑相同配置。由此确认当前设备/系统/工具版本与资源边界内,无已合格完整独立参考,不是永久不支持的结论。
依Owner政策,准入全新无参考五轮:全部产品来源、算术、消费者、固定健康槽、四阶段方向、保全与资源门通过后,才正式计39/66,标记NO_REFERENCE_ACCEPTED_OWNER_POLICY、referenceAccuracyValidated=false、ownerReviewRequired=false。每轮仍记录Metal完整覆盖结果;若意外出现完整参考则必须检查其参考区间,不能忽略。新独占attempt使用avgfps-20261023-a01-r1…r5,旧样本/轮次均不拼接。当前仍0/5,没有新手机请求。
四阶段方向检查已加入独立工具;21项软件反控通过(E2)。合成7,240事件有理算术基线/严格流式检查wall分别0.040275/0.064956秒,CPU0.039755/0.064512秒,RSS26,984,448/27,394,048B;25,000事件wall0.132990/0.241152秒,CPU0.130670/0.231644秒,RSS26,705,920/32,407,552B,严格检查吞吐约103,669事件/秒。冷启动首响应0.043–0.051秒;25,001事件0.222620秒按上限拒绝,峰RSS32,505,856B。I/O unknown。严格版增加来源/投影校核工作,与算术基线比较不宣称产品优化;两者整数和、计数与FPS完全一致。完整保全源预核增加阶段检查后wall0.528885秒,四阶段约30.048/60.067/45.091/60.063FPS,固定方向全过,仍不计真机新轮次。
当前实现只增加离线验收工具,没有产品代码/包改动。空流/仅warmup的null语义已在算术层测试;尚未执行完整空Session消费者用例,不声称该消费者路径已验。私有证据根为20261023-average-fps-preflight-01,所有初始冻结/输出保留,修订输出使用a02;未覆盖a01。
Validation Update · 2026-10-23 · 新第一轮资格通过
全新r1完整140.011170秒,7,239源事件、7,233准入间隔,独立AvgFPS51.597903530165766;全部摘要消费者/Raw精确投影一致,175行源与CSV核同,固定120/120健康槽有效,四phase方向通过。32个Session文件/27,767,788B保全SHA一致;手机真实run30→31,旧SHA保持、新请求镜像及六件封存。完整Metal仍未合格(34端点未配、4额外),不宣称物理精度。正式仅1/5、整体仍38/66,下一新第二轮。
Validation Update · 2026-10-23 · 新第二轮资格通过
新r2完整140.008931秒,7,244事件/7,240间隔,AvgFPS51.61121570259734;192行源/CSV、全部摘要和120/120固定健康槽核同,四阶段方向通过。32文件/28,070,934B保全SHA一致,手机run31→32、旧SHA保持。正式2/5、整体38/66,下一新第三轮。
Validation Update · 2026-10-23 · 新第三轮资格通过
新r3完整140.017166秒,7,241事件/7,237间隔,AvgFPS51.6118389134805;186行源/CSV、全部摘要与120/120健康槽核同、四phase方向通过。32文件/27,977,201B全SHA保全,手机run32→33、旧SHA保持。正式3/5、整体38/66,下一新第四轮。
Validation Update · 2026-10-23 · 新第四轮资格通过
新r4完整140.018905秒,7,238事件/7,233间隔,AvgFPS51.61401052916113;195行源/CSV、全部摘要与120/120健康槽核同,四phase方向通过。32文件/28,112,708B全SHA保全,手机run33→34、旧SHA保持。正式4/5、整体38/66,下一新第五轮,不拼接旧样本。