外观
R2 图表分段复用与峰谷保真降采样
实施前合同
仅显示变换,不改指标公式、数据、质量枚举或报告统计。每个已有连续有效段独立处理,missing断点不合并;每个像素桶保留首/尾/最小/最大点,按输入顺序输出并去除重复索引。容量每段至多4P,保留跨桶形状转折,不承诺还原全部高频波形。横坐标有序有效输入时O(N+P),额外O(P)输出;多断点仍按段保留,不以总点数上限跨断点连线。
曲线分段只计算一次,绘图及纵轴范围复用相同结果。像素桶按逻辑绘图宽度限制1~4096;退化域、乱序、非有限输入保留原输入而非静默丢弃(当前调用已过滤)。测试峰谷/顺序/端点/小样本/多断点,release模型20轮比较旧全点路径和新采样路径,报告预处理成本及输出点数,不将点数减少当作实测UI帧率提升。
实施与E2结果
默认启用每个series分段只算一次,纵轴与Path绘制复用。ChartExtremaSampler实现逐桶首尾/峰谷保留,单段至多4P;默认开关false,未进入默认采样路径。原因是效率门禁尚未通过,不用输出点数减少冒充绘制性能已提高。
Swift118项执行、1个旧窗口基准默认跳过,117项通过;新增峰谷、每桶局部极值、序号稳定、首尾、小段、乱序保留以及多断点独立测试。Python277/277通过。未修改Raw、指标公式与统计。
基准失败也保留
60000点/400桶、每轮100次处理,20轮/模式,优化编译。原全点坐标遍历中位8.909ms、CPU8.191ms;采样+坐标遍历60.241ms、CPU55.293ms。输出点6000000→159300(约97.35%减少)但本模型CPU明显增加。模型不是SwiftUI Path/GPU绘制;不据此推断真实绘制性能变好或变坏,默认保持关闭。
匿名基准。脚本源MacApp/scripts/chart-extrema-benchmark/main.swift与当前采样器一起用swiftc -O编译。仅显示算法正确性E2,不是R2渲染性能关门。默认分段复用减少重复遍历,但未量化实际UI帧时延收益。
后续与整体
剩余R1全源准备、R2屏外/刷新/截图缓存、R3完整增量报告和引擎恢复继续开放,见集中清单。下一步真实SwiftUI profile后决定采样启用与否;当前仅分段复用进入默认路径。整个计划仍partial,不因内部包递增而称完成。
Build45内部包(E2)
最终Swift118项执行、117通过/1旧基准跳过,Python277通过;64合同站点构建通过,有bundle体积警告。Build45 x86_64独立解包一致、严格codesign/probe通过;采样默认false。ZIP110345567字节,SHA-256 cf9f5bb46db6cdcddb9b64fb89d0369cfed21ae0283361241312bcdcf309309c。包证据。ad-hoc,Gatekeeper/staple未过,未安装、无E4;正式发布门禁仍开放。