planP6E3partial2026-10-28

用户报告简化与 PerfDog 结构对齐导出方案

0. 决策、状态与执行边界

Owner于2026-10-28指定的最终目标:

  1. 正常打开的报告服务普通用户,直接呈现测量结果,不出现内部标记,也不出现“可信/不可信/可靠/估算/候选”等可靠性标签、徽标或暗示。
  2. 默认导出为一份与实际 PerfDog 样例结构对齐的 Excel,以及一份真实采集截图 ZIP;优化 Excel 样式与可读性,而非复制样例的粗糙外观。

本文件为Lead方案定稿,证据为E1静态核对;产品实现、软件验证和打包仍待执行。同一AI按既有Owner授权顺序切换工作面,不创建子代理;本次只修改方案,不顺带开发。

1. 已纠正的样例事实

1.1 Excel来自实际PerfDog,而非自动化平台

已直接检查Owner提供的三份PD_20261028_11_*.xlsx:

样例all行数@FrameInfo行数all明细宽度
11:41:218150644列
11:42:586542544列
11:44:197044344列

三份均有all和@FrameInfo两个工作表。上述行数包含表头/元信息,不当作有效采样数。

旧提案的“一个sheet、29固定列+每步骤4列、每次执行一行”,实际来自自动化探针平台的4行49列表格。旧提案据此推导的任务、活跃CPU、步骤流量和videoUrl,全部撤出本批PerfDog格式合同。双方使用相似的文件生成器,不构成平台来源证据。

私有样例不入Git。实现时用去身份化的schema快照固定字段名、顺序、位置和类型;不复制私有元数据或采样值到公开fixture。

1.2 all结构合同

首批固定对齐Owner提供的桌面版样例,不承诺PerfDog任意版本或其导入接口兼容:

位置内容本批处理
第1–6行应用与设备基本信息及分隔保留布局;展示应用名、版本、设备机型、系统、测试时间。身份信息使用设备A等别名
第4/5行设备字段/值延续原列位置;未知硬件属性留空,不构造型号参数
第7行Stat分区标题保留;使用清晰的分区样式
第8/9行统计表头/统计值保留样例29列及顺序;有明确映射的数值才填入
第11行Data_v4结构标识为兼容样例结构保留;它不是Perfowl算法版本或质量标签
第12行起明细表头+逐秒数据保留44列及相对位置;一行对应一个真实产品采样点

第12行固定表头如下;这里只固定列结构,不宣称同名指标底层算法相同:

Num, time, absTime, label, Notes, FPS, Smooth, 1%Low(FPS), TinyJank, SmallJank, Jank, BigJank, Stutter[%], AppCPU[%], TotalCPU[%], Memory[MB], XcodeMemory[MB], RealMemory[MB], VirtualMemory[MB], AvailableMemory[MB], Send[KB/s], Recv[KB/s], ReadDiskBytes, WriteDiskBytes, CPUUsage0[%], CPUUsage1[%], CPUUsage2[%], CPUUsage3[%], CPUUsage4[%], CPUUsage5[%], Render[%], Tiler[%], Device[%], BTemp[℃], ThermalStatus, Wakeups, CSwitch, CPUEnergy, GPUEnergy, NetworkEnergy, LocationEnergy, DisplayEnergy, OverheadEnergy, ScreenShot

样例CPU逐核列只有六列,这属于样例schema而非通用设备事实;首批保持六列,按真实数组顺序填可对应值,缺项留空,不平均补核、不宣称物理核心身份。其他架构扩展另立schema,不偷偷增减列。

第8行统计表头固定为:

Avg(FPS), FPS>=18[%], FPS>=25[%], Std(FPS), Var(FPS), Drop(FPS)[/h], Median(FPS), MedRange(FPS)[%], Smooth, 1%Low(FPS), TinyJank(/10min), SmallJank(/10min), Jank(/10min), BigJank(/10min), Stutter[%], FTime>=100[%], Delta(FTime)>100ms[/h], Avg(FTime), Std(FTime), Var(FTime), Avg(Memory)[MB], Peak(Memory)[MB], Avg(AppCPU)[%], AppCPU<=60%[%], AppCPU<=80%[%], (Recv+Send)[KB/s], (Recv+Send)[KB/10min], Send[KB/10min], Recv[KB/10min]

1.3 截图包与帧表

2. 普通用户报告:去内部化,不改测量事实

2.1 正常报告的展示合同

普通用户界面默认直接把已有测量结果作为产品数据展示。不显示可靠性评分,不要求用户自行判断数据真假,也不通过删标签改变采集或统计结果。

保留并优化从普通报告移除
应用名、版本、设备机型、测试时间、测试时长Session UUID、Raw路径、SHA、PID、协议/服务名
应用CPU、内存、FPS、网络、启动等通俗名称和单位metricID、算法版本、source、adapter、profile
默认平均值,按需查看峰值、曲线和截图candidate、valid、质量码、正式验收计数、诊断状态
应用/整机的对象区别、CPU整机100%刻度“可信/不可信/可靠/不可靠/估算”等标签及红黄绿质量徽标
用户可理解的操作成功/失败和真实进度session-timeline.v1、raw顺序保留等开发过程文案

说明指标含义的“应用CPU(整机100%)”“应用内存(物理占用)”“整机网络”等是必要口径,不是可靠性标签,应保留。普通报告、悬停提示、分享及默认导出均使用同一用户文案映射,不直接拼接底层字段。

2.2 内部语义仍完整保留

本次Owner指示调整的是产品展示面:Session原件、内部诊断、测试日志和开发记录继续保留candidate、来源、覆盖、算法及验收边界。普通报告不展示这些内部字段;诊断工具明确区分于面向用户的报告。

不因移除标签而启用11项暂停源,不修改SessionReportBuilder.accepts或把missing改成有效。现有合法观测即使内部来源名包含candidate,仍按既有统计合同处理,不额外用“历史已验收”替换运行时有效性判断。来源、单位或窗口不匹配的列不硬映射;单元格留空,不附可靠性标记。

AGENTS保持原样。证据等级仍用于工程交付,不变成普通用户报告上的评分。

3. 复用现有统计,禁止另起汇总内核

共享路径:PerformanceSessionReview / sealed report → SessionReportRepository → SessionReportBuilder / ReportSeriesIndex → 用户报告与Excel适配器。

3.1 映射、单位与统计口径

实现前在Canonical知识页补齐逐列矩阵:原字段、真实metricID、scope、输入单位、转换、有效性、窗口、取整、版本、来源。以下决策已固定;未知字段不是Implementation自由猜公式的空间。

Excel字段Perfowl处理与公式边界
Num原采样时间排序后1起连续编号不因缺少某个指标而删除整个真实样本行
time封存采样的相对时间,秒×1000,单位ms保留真实间隔,非行号×1000;不构造缺秒
absTime已记录且可映射的墙钟时间,Unix毫秒缺失时为空,不把设备Mach tick直接当Unix时间
label / Notes已有用户标记/备注防XML非法字符;以字符串写入,不执行公式
AppCPU[%]、Avg(AppCPU)[%]原始应用CPU÷样本显式正整数核数;对派生有效点求均值整机容量100%刻度;缺核数为空,原始单核100%数据保留在诊断
TotalCPU[%]已有显式normalized整机CPU不回退到原始多核累加值
FPS / Avg(FPS)现有1Hz产品FPS序列及共享均值不用高频源均值覆盖,不按屏幕刷新率合成静态页FPS
Memory[MB] / Avg(Memory)[MB] / Peak(Memory)[MB]产品默认内存=物理占用Footprint,bytes÷1,000,000;均值/峰值来自同一序列普通口径说明明确“内存=应用物理占用”;不据同名宣称等同PerfDog内存源
RealMemory / VirtualMemory / AvailableMemory[MB]对应已记录的真实/虚拟/整机可用内存bytes÷1,000,000各列独立;不把Footprint复制到多个列,不把free当available
XcodeMemory[MB]未建立严格映射时留空不凭字段名或数值接近对号入座
Send / Recv[KB/s]目标应用网络速率bytes/s÷1000不把整机网络塞入应用网络列;UI如用KiB/s仍保留正确单位
(Recv+Send)[KB/s]同时刻上/下行都有效时求和,再对共同有效点求平均不直接相加不同覆盖集合的两个平均值
CPUUsage0…5[%]已记录逐核数组的对应位置缺项为空,不做频率加权或伪造物理核心编号
ScreenShot与该采样点明确时间匹配的ZIP内JPEG名超出既有匹配窗口或无图时为空,不按行号强行关联
GPU、磁盘、唤醒、切换、能耗等仅复用已记录且scope/unit/统计形态一致的字段未映射/暂停字段留空,不新增采集或恢复暂停项
Jank分档、Smooth、1%Low、Stutter、帧时统计等完整源及算法已闭合时才能映射;否则保留空列不用“每10分钟次数”冒充本秒次数,不凭PerfDog列名发明阈值

导出MB/KB使用十进制,与表头一致;既有产品MiB/KiB使用二进制。只在展示适配层转换,原始bytes及既有源公式不变。用户报告的通俗口径说明不声称PerfDog内部单位已得到独立证明。

FPS>=18、FPS>=25与CPU阈值比例,在对应产品序列有效点上按100×满足条件点数/有效点数定义;这属于明确写入知识页的Perfowl统计,不据列名认定等同PerfDog内部采样。Std/Var、MedRange、Drop、每10分钟流量等未固定总体/样本、阈值、窗口和重置处理的统计暂留空,不借本次样式改版调整源公式。

启动耗时保留在App概览;三份模板均已核实all基本信息区K4/L4与K5/L5未占用,首批使用K4“启动耗时[ms]”/K5单次启动值、L4“测试时长[ms]”/L5起止单调时钟差。缺事件/时钟映射时留空。不插入新行、挤移第8/12行,也不将这些扩展信息伪装为PerfDog既有统计列。

速率、累计流量与每10分钟归一统计分开;不使用平均速率×Session时长伪造精确累计量。本批不实现任务/步骤流量、白屏、丢包或活跃CPU。

4. Excel视觉优化:结构相同,外观更易读

选择“保留字段与位置+优化样式”,放弃“逐字节复制POI文件”。不复制样例的字体表、rId编号、fills数量或丑陋样式;验收以语义结构和打开效果为准。

部位视觉规范
整体浅色工作表、隐藏网格线;默认11pt,使用跨平台常见字体和回退,不依赖某台Mac私有字体
品牌与分区Perfowl自有深色#0B1020分区标题,白字;强调色#2F83FF,辅助色#55D2C1
元信息标签与值层级清楚,留白充足;不把技术ID放到首屏;不合并明细表单元格
汇总区标题行高28–36pt,自动换行;数值行醒目但克制;CPU/FPS/内存/网络用浅色分组,不按可靠性上色
明细表第12行表头固定,启用筛选;默认冻结F13,保留前5列和顶部元信息/汇总;按实际窗口验证滚动可读性
列宽时间列约18–24字符,指标列12–18字符,备注24–36字符;长表头换行,不靠极小字体塞入
行与边框数据行20–24pt,极浅隔行底色;仅必要细分隔线,不给每格厚边框
数字CPU/FPS/内存/速率默认2位小数;时间ms/次数为整数;数值单元格仍为数值,0正常显示,空值保持空白
表头单位已有[%]数值使用0–100尺度,不套Excel百分比格式放大100倍;MB/KB与转换规则一致
长表不把整个44列表压到一页;打印横向、重复表头,按可读宽度分页;不依赖打印结果作为唯一使用方式
帧表@FrameInfo有真实数据时使用清晰表头样式与适当列宽;无数据时结构为空,不加内部诊断提示

附着在表头上的中文解释可说明指标业务含义和单位,不含算法代号、质量码或可靠性评价。无数据的高级列可折叠为列组,物理列仍保留且可展开;不删除或偷偷重排schema。首批不新增装饰性图表sheet,避免多一套均值及文件负担。

5. 截图ZIP:真实、可对应、两个文件成套交付

  1. 正常菜单主项“导出报告(Excel+截图)”,一次选保存目录。生成PF_<时间>_<短导出标识>.xlsx和同stem的.capture.zip,避免重名覆盖;不把内部Session UUID直接用作普通文件名。
  2. 截图来自当前Session保存的真实图,按原采集时间排序后输出1.jpg…N.jpg。不补帧、重复图填秒或补拍设备;仅关闭预览而仍保存的截图可导出,预览和保存均关闭则没有历史图可导出。
  3. 纵屏样例为295×640;实际输出最长边不超过640,保持纵横比、不放大小图,正确应用旋转。使用ImageIO缩略图解码,避免为小图先完整解码原分辨率。JPEG去除EXIF/GPS等元数据;保留原图不改写。
  4. JPEG初始质量0.7,以文字和界面可辨认优先,不以强压到样例体积为验收。ZIP对JPEG默认store;实测deflate有显著收益后才启用,不盲目重复压缩。
  5. ZIP保持平铺图片,无强制新增manifest文件。all.ScreenShot是逐点映射;精确图片时间映射、exportID和格式版本可存xlsx的非展示custom XML part,schema先文档化且不含敏感身份。普通Excel不显示该内部part。
  6. 没有截图时仍可完成一份Excel+一个有效空ZIP;保存对话框提前用普通操作说明“本次未保存截图,截图包为空”,不使用质量标签。Excel的ScreenShot列为空,不作虚假成功张数。
  7. 银行截图的像素内容可能含账号/姓名;去EXIF不等于内容脱敏。保存确认提供截图预览和“包含截图”选项,提示仅说明截图内容可能包含个人信息。首批不自动裁切、模糊或用内容识别生成新图;取消包含截图时输出空ZIP。
  8. 导出前检查至少10GiB可用且不少于预计新增量两倍;空间不足直接提示,不启动编码。两个输出先写私有暂存并校验再提交。取消、磁盘满或第二文件提交失败时清除本次已提交的另一文件,保留已有同名旧文件;不显示双文件完成。两个独立文件不具备跨文件系统事务原子性,使用本地作业清单记录发布进度,崩溃后识别并清理本次半成品,不误删其他文件。为免覆盖歧义,默认使用唯一stem,覆盖操作必须显式确认。
  9. CSV/PDF已有功能保持可用,列入“其他格式”;原始JSONL和详细诊断导出放独立开发者入口,默认关闭。默认普通PDF也使用同一去内部化文案,不留下另一份带质量码的用户报告。

6. 实现结构与取舍

新增仅为展示/导出适配层,可命名UserReportPresentation、PerfDogLayoutWorkbookWriter和CaptureArchiveWriter;复用现有Report索引及缓冲/原子写入工具。

ZIP先检查项目现有可复用实现。选择无新运行时依赖的流式写入方案,支持store和需要时的deflate;如需自写,先独立证明CRC32、UTF-8、ZIP字段、raw-deflate格式、偏移与中央目录正确,再用于xlsx。不要把压缩API的名字当作ZIP格式兼容证据。

明确限制:首批不支持ZIP64,校验单项大小、各偏移、中央目录大小和entry数量;超过32位大小/偏移或65,535项前停止并提示拆分,不在尾部生成损坏包。xlsx明细超过1,048,576行时拒绝并建议分范围导出。字符串按OOXML字符串写入,处理XML控制字符和Excel长度边界;备注中的= / + / - / @不变成公式,截图链接只指向本次安全文件名。

放弃的选项:另起统计内核、照搬自动化任务schema、同名自动归并任务、先上步骤管理、以截图轮询生成帧真值、逐字节复刻POI。收益是减少第二轮变量;代价是暂不提供跨Session任务汇总和步骤流量,这些另立方案。

7. 执行效率与资源预算

关键路径:复用已加载Report → O(n)字段映射/XML流式写入 → 有界截图编码与串行归档 → 两产物验证/提交。多次均值查询继续使用现有索引,不因滚动、悬停和导出反复扫描Raw。

项目策略预算与验证
汇总已建索引查询,新增映射单遍O(n),不建立第二套统计3600个产品点映射目标≤50ms;单列计时,不把Session加载算作已达该目标
Excel64KiB有界缓冲,O(n×列数),仅存必要索引3600行≤1s、14,400行≤4s,新增峰RSS目标≤32MiB;样式数固定,不每格造样式
截图默认并发2、最多4;编码结果按序写,待写队列≤8张600张≤5s、3600张≤30s,新增峰RSS≤200MiB;预算是待实测目标,不预填结果
交互主线程只创建任务/更新进度;按阶段取消首响应≤100ms,取消反馈≤1s;不在主线程压缩或遍历截图
超时记录数/字节/耗时进度;单图10s,总任务10min上限失败即结束当前任务,不无限重试;保留内部失败证据、清除用户半成品
I/O每图读一次、编码一次、输出一次;schema模板缓存计量读写字节与进程采样峰值,不称物理磁盘峰值

使用相同主机、构建配置和输入,对60s/1h/4h Session及600/3600张截图测量:首响应、总耗时、CPU、RSS、读写量、取消和最坏情况。CSV/既有PDF仅用于各自受影响路径前后回归;截图路径用相同截图输入比较编码/归档方案,不以CSV作为截图ZIP性能基线。JPEG store/deflate的时间和体积单独实测。

已有报告加载/首绘绝对门保持开放,本批不通过缩小计时范围掩盖。新路径未达预算或相对相同工作基线出现明显回退(目标不超过1.2倍,短输入额外50ms)时,记录partial并优化,不把“文件能打开”称完整效率交付。

8. 实施批次与验证标准

批次实际范围软件验证与边界
R0逐列映射和知识页增量,固定去身份化PD schema与截图样例;补齐帧表可映射性44明细列、29统计列、两sheet位置;未闭合字段明确空列;不新增指标验收
R1普通报告去内部化、统一用户文案,复用共享统计对已展示合法观测不因标签变化改数;空值/合法0、CPU核数、均值/峰值、选择范围及启动事件回归
R2流式xlsx及样式、截图ZIP、成套保存、普通PDF同步独立解析xlsx/ZIP;数值重算、文件损坏/磁盘满/取消/超限/旧Session兼容;生成样例后逐页视觉复核
R3提交实际实现增量、匹配基准,内部签名打包与同址覆盖App/包签名、SHA、独立解包/安装核同分别记录;不混称手机可用或精度已校准
Owner第二轮按既有冷启动、五标签每10秒切换方案提供三轮数据由Owner测试;AI之后比较各轮均值及三轮等权均值,分析差异,不自动恢复正式验收

实现记录追加到本devlog的Implementation/Validation Update,说明相对方案偏差。知识口径增量使用唯一Canonical页,优先现有session-replay/session-integrity及各指标页,不新建竞争均值知识版本。

必须验证的门槛

  1. 普通报告、悬停、历史入口、默认PDF/Excel无Perfowl内部质量码/版本/来源标记,无任何可靠性徽标。验证实际渲染路径,不能只扫静态字符串。
  2. 数据筛选与计算不因去内部化而放宽:空值不变0,合法0不丢弃;旧Session缺字段可读;原件SHA不变,11项暂停状态不变。
  3. 三份实际PD模板逐一核对两sheet、29统计表头和44明细表头、位置/顺序/类型;允许样式、ZIP part编号、生成器、时间及Perfowl基本信息扩展不同。不声称任意版本的逐字节/导入兼容。
  4. Excel、Numbers、WPS实开可读并截取顶部汇总、长表滚动、帧表和打印分页;未具备的软件明确列为未验证,不以一个软件打开替代三者。
  5. UI/Excel/CSV/PDF同范围同单位统计一致;独立实现复算均值和单位转换;多轮均值等权规则单测,不改已有历史数字。
  6. ScreenShot所有非空引用都落到同次ZIP真实文件,时间映射可还原;无图为空ZIP;纵/横屏/旋转/损坏源图/取消包含截图均有用例。
  7. 身份隐私扫描覆盖XML、custom parts、文件名和备注;像素内容由用户保存前预览确认,不把扫描通过描述为已自动脱敏。
  8. 完成资源预算测试,提交真实前后数据;软件/环境证据与Owner手机试用分别报告,不自行升级指标校准状态。

9. 交接与后续动作

当前状态:方案approved,尚未实施。两个Owner目标已纳入;旧模板误认已纠正。当前第二轮包收尾与本报告优化是两个范围,后者完成后使用新的递增build号,不修改既有包的验证收据。

本方案落盘后可直接交Implementation执行R0–R3,不设置Owner逐批审批;遇到未知字段按本合同留空或保留空帧表,不扩大采集/公式/任务体系。若需要改变已固定单位、scope、帧语义或字段位置,先追加文档化决策再实现。

完成各批按AGENTS窄范围提交、双远程推送尝试、文档/站点闭环和通知,GitLab一次失败不重试;公证暂缓的内部交付状态如实分列。交付提供真实包路径、安装build、签名/哈希、验证范围和遗留,不将源代码完成等同用户第二轮通过。

可转发执行指令

> 项目Perfowl,按Implementation职责执行本方案R0–R3。先读AGENTS、current-ai-handoff、本文及第二轮统计合同实施增量;核对分支codex/metric-comparison-round2-20261028与基线4366bf84,保留已有WIP和三份用户Session。普通报告无内部/可靠性标记;Excel以实际PD的all+@FrameInfo结构为准并优化样式,配套真实截图ZIP,复用共享统计,未知字段留空。范围不含采集源/公式调整、任务步骤体系、11项暂停验收或AI手机操作。同一AI顺序执行,不创建子代理。实施与验证追加同一devlog,完成后按内部签名要求打包同址覆盖,由Owner做第二轮测试;返回提交/双远程/通知、实际包与安装、软件及资源证据、偏差和遗留。公证继续暂缓。

10. Plan Validation Update · 2026-10-28

Implementation Update · 2026-10-28 · R0开始

Owner已明确“开始开发”,当前按Implementation职责执行,基线c8b9b7e9。先补齐导出映射/schema和展示合同,再修改代码与匹配测试;保留既有site/data/metric-contracts.json显示名称同步WIP,不夹带其他原工作树文件。同一AI顺序执行,不创建子代理。正式55/66与11项暂停不变。

R0限定:@FrameInfo三列缺少已验证的producer/单位映射,首批保持Data_v4标题与空数据区,不制造逐帧条目;帧摘要仍从既有封存数据读取。Excel采用ZIP store流式写入(OOXML与JPEG均可独立读取),不为首批增加压缩依赖;对同输入资源预算实测后记录实际体积与耗时。

Implementation Update · 2026-10-28 · R1/R2实现范围

已接入共享UserReportPresentation,普通结果窗/历史摘要/PDF使用用户词汇;内部诊断由默认关闭的设置开关进入,旧完整CSV保留,普通CSV另用简明统计表。默认菜单接入Excel+截图ZIP及保存前截图预览/包含开关。未改变ReportBuilder有效性白名单、暂停ID或原件。

新增原生流式ZIP32 STORE、OOXML适配及双文件作业发布/哈希回滚,截图使用ImageIO有界2路缩略图编码,最长边640;ImageIO会自动生成尺寸类EXIF,因此在JPEG容器层删除APP1/APP13/COM段,不重压缩像素。ZIP遵守UTF-8、CRC/data descriptor/中央目录及32位边界,空包有效;未知帧表保持空,未用逐秒FPS造帧。元数据part记录exportID、来源摘要、截图归档SHA及时间映射,不进入用户表格。

资源优化:可见性过滤新增前缀计数查询numericCount(in:),避免每次游标更新为筛卡而重复扫描区间极值;用户词汇映射缓存为静态表。Excel行流式64KiB写入;图像解码按2张批次写,待写内存不随截图总数增长。

方案偏差与边界:首批ZIP仅STORE,避免未经证明的raw-deflate兼容;崩溃作业在再次导出到相同目录时恢复,不全盘扫描用户目录。当前三份用户原件没有保存截图,旧数据的成套导出将产生空截图ZIP;截图真实转换/关联使用明确标注的合成fixture做软件验证,不把它当新增手机截图证据。Excel/Numbers/WPS实开范围分别记录,本机软件缺席时不虚构覆盖。

可读性决策补充 · 2026-10-28

固定PD列顺序会使CPU均值落在横向较远的W9。为避免用户打开Excel只看到一片高级空统计,在原来空闲第6行增加“平均FPS/平均CPU/平均内存/应用网络”四个概览数值,直接引用同一已计算统计数组。第8/9行29列和第12行44列表完全不移位,不新增sheet或另一套统计;基本信息区的有限扩展是明确的样例差异,不承诺逐字节一致。

Validation Update · 2026-10-28 · 软件与数据分离复核

本次按Owner授权由同一AI顺序执行实现与复核,不创建子代理。最新窄回归27项、2项按环境跳过、0失败(23.773秒);另一次启用真实Session导出与完整资源测试的26项、1项跳过、0失败(315.863秒)。两个执行范围不同,不合并相加。后者资源测试完成后又加固UTF-16单元长度、作业清单有界读取、容量估算溢出和ZIP body失败防复用,最新27项已重新编译覆盖这些变更;原资源结果保留,不冒充最新全套重测。

资源实测与开放门禁

基准为Intel本机软件测试;1Hz合成60/3600/14400点,截图为1179×2556独立PNG,不是实机采集。I/O为进程累计及20ms采样速率,不是物理磁盘峰值;未控制冷缓存,截图基准包含ImageIO内部CPU开销。

路径实际wallCPU内存与结论
Excel 60行0.022s0.020s新增RSS约0.008MiB
Excel 3600行0.970s0.948s新增峰RSS约8.4MiB;该次≤1s
Excel 14400行5.620s5.347s新增峰RSS约32.7MiB;4s/32MiB目标未达
600图,1→2路15.660→12.719s28.391→33.096s2路新增峰RSS约16.9MiB;5s目标未达
3600图,1→2路132.724→82.564s215.131→223.344s2路新增峰RSS约26.0MiB;30s目标未达

保留全部失败门与原阈值,不把有界并发等同高吞吐。首批选择默认2路是相同输入wall降低约19%/38%,不是CPU节省;长截图导出仍需后续优化。同步ImageIO单图处理完成后检查10秒,期间不强制中止系统解码;取消在任务边界检查,不宣称不可中断调用具备硬实时超时。最新UI长报告基准与全回归见后续增量,未达绝对门或相对回退保持partial,不以可安装代替效率门关闭。

Validation Update · 2026-10-28 · 全回归发现的旧截图断言

首次全回归420项、8skip、5个断言失败,集中在3个CPU cadence用例:旧断言把“未保存截图”误当作“无截图采集”。前一批已明确默认保留实时预览、只有预览和保存都OFF才零连接,因此冻结CapturePlan应反映预览ON、持久化仍OFF。已在两个cadence测试文件同步此合同,增加显式preview ON断言,未修改产品来迎合测试;OFF零连接专门测试保持。初次失败日志保留,最终全回归另记。

Validation Update · 2026-10-28 · 最终软件回归与UI对照

最终全Swift回归420项、8项opt-in跳过、0失败(76.713秒)。该回归不包含手机操作,跳过范围不冒称通过;先前真实Session导出、OCR、截图规模基准分别有独立执行收据。

合成规模首绘前→后游标P95前→后峰RSS前→后渲染CPU前→后
60点1.188→1.156s90.97→78.15ms约74→71.3MiB4.304→3.717s
3600点15.408→29.728s65.27→191.48ms126.0→119.6MiB15.924→21.372s
14400点47.617→62.755s59.25→88.84ms289.3→265.4MiB44.335→51.838s

60点普通试用的首绘和游标较旧基线下降,但50ms游标绝对门仍失败;长场景首绘/游标相对回退,效率门保持partial,未通过缩小输入、改阈值或省略失败场景消除。合成输入和调试构建相同,缓存/系统状态未完全控制,根因尚待独立分析;不直接归因硬件,也不据软件测量预判真机结果。原完整诊断CSV长场景耗时仍明显,默认导出已改为流式Excel,不把二者当等工作量性能比较。后续应优先排查长Session载入/统计及游标重绘,再做同机重复配对;本批按Owner要求先交内部测试包,非完整效率交付或阶段PASS。

Review Update · 2026-10-28 · 多窗导出恢复互斥

分离代码复核发现两个报告窗同目录导出时,恢复逻辑可能在另一作业发布的极短窗口把活跃作业当作中断作业。因此为每个作业增加本机文件锁,覆盖创建至发布完成;恢复仅非阻塞取得锁后处理账本,活跃作业直接跳过。锁随作业目录移除,不在用户目录常驻全局锁、不串行阻塞图像处理。新增真实文件锁负控,继续检查hash匹配才删、不删除被用户替换文件。此为代码检查发现并修复的并发边界,不声称已发生用户数据损失。

作业在首个数据写入前落盘空输出清单,避免编码阶段进程中断留下大体积暂存却无恢复凭据;获得非阻塞锁后可清理此类空清单工作目录。最终发布前将清单替换为两文件SHA,不改已发布文件的hash保护。缺少/无效清单的未知目录仍跳过。初次230编译在本次复核后中断保留日志,后续仅安装覆盖上述修订的新编译产物。

最终文件锁/预发布恢复/失败回滚加固后,重新编译并运行29项聚焦测试,1项规模opt-in跳过、0失败(29.243秒),包含3份真实会话重新导出、普通UI OCR和实际文件锁负控;再次独立读取新导出ZIP/XML及逐点复算通过。此前文件锁版本的完整回归421项、8skip、0失败(140.474秒),与最新29项范围分开,不相加冒称完整422项全部重跑。方案及产品代码已冻结,后续仅内部打包与收据。

最终真实旧会话Excel经QuickLook二次预览成功:左侧第6行概览可直接看到FPS/CPU/内存/网络均值,固定统计与明细表头未移位;预览不替代Excel/Numbers/WPS实开。方案阶段Node下载不完整保留为历史失败记录,本次续传经官方SHA核同取得固定Node 24.19.0,将按项目门禁重新构建,不降低版本约束。

Package Validation Update · 2026-10-28 · 旧包回滚验证器修正

230 App已完成Developer ID严格签名、330个Mach-O架构及依赖检查、105个Collector冻结模块与当前源码核同,签名DMG与独立只读挂载树核同。首次安装流程在旧228回滚检查处停止,尚未替换客户端:私有验证器把旧动态库的LC_ID_DYLIB自标识误计为外部加载依赖。以otool -D/-L分离确认后,旧包回滚改用原树与ZIP还原树逐文件SHA/权限/符号链接一致及严格签名验证;不修改旧包、不降低230新包门槛。失败日志与原回滚ZIP保留,续执行结果见安装收据。

Internal Installation Update · 2026-10-28 · Build 230

整体状态partial:R0–R2开发与内部安装已落地,R3长报告/大量截图资源、办公软件实开、Owner手机E4及正式分发门仍开放;正式55/66、其余11项暂停。提交/推送/网站/通知以本次独立交付收据报告,不将内部可安装描述为完整效率交付或阶段PASS。

Site and Cleanup Update · 2026-10-28

固定Node24.19.0已按官方SHA验证;完整站点client/server/render构建69.933秒,66项知识合同门通过,无构建错误/死链。现有大chunk提醒保留,不当作错误或性能优化完成;本批未发布生产站点,未合并main或放宽生产发布门。

本批仅移除已被签名DMG/安装树替代的229与230构建App副本(逻辑约477MB),可用空间增加550,809,600 bytes;已刷新标准入口,Spotlight当前存在的Perfowl App仅/Applications/Perfowl.app。本机App约263MiB,dist仅当前一个140MiB内部DMG及校验文件;旧228为私有ZIP,不另装。用户Session及失败/待分析证据未清理,111文件SHA保持不变。清理与安装不计入指标验收。