旧版前端工程文件导入时版本对比查验、审阅与仿真时部分阻挡功能实现;前端参数输入格式统一规范
This commit is contained in:
1 parent
22579e51c9
commit
44b6ea74ab
32 files changed
+2087
-322
No files matched your search
@@ -1,5 +1,7 @@
|
||||
# 优化验证的模型、数据和计时口径
|
||||
|
||||
文档版本:1.0.0;核对日期:2026-09-12;代码基线:`22579e5`。本轮补充实际计时字段和运行入口,保留用户指定的八路优先及精度要求。
|
||||
|
||||
本约定记录用户于 2026-09-11 明确的长期偏好,适用于后续仿真正确性检查与性能优化。
|
||||
|
||||
## 默认模型与退路
|
||||
@@ -20,12 +22,32 @@ Amesim 速度比较需要同模型、同设置、完整区间的真实 CPU/墙
|
||||
|
||||
## 固定精度与运行条件
|
||||
|
||||
当前用户已批准网页/API 默认 `rtol = 1e-8`。同一性能比较中的精度必须固定,记录实际生效的 `rtol`、`atol`/状态误差下限、求解器、最大步长、输出间隔、起止时间、事件策略及雅可比策略。不能通过放宽精度、缩短区间、减少输出或改变物理参数制造加速结论。精度或模型变化后另建比较组,不能直接用旧组耗时计算优化比例。
|
||||
当前用户已批准网页/API 默认 `rtol = 1e-8`,原生 Python CLI 也经同一设置入口;单独构造 `SolveIVPConfig()` 默认仍为 `1e-6`。同一性能比较中的精度必须固定,记录实际生效的 `rtol`、`atol`/状态误差下限、求解器、最大步长、输出间隔、起止时间、事件策略及雅可比策略。不能通过放宽精度、缩短区间、减少输出或改变物理参数制造加速结论。精度或模型变化后另建比较组,不能直接用旧组耗时计算优化比例。
|
||||
|
||||
正式计时记录源码版本、输入和原始结果 SHA、构建标识、编译器及积分库版本、硬件与运行环境。固定预热规则、缓存状态和重复次数,同机比较时避免并行求解、大编译等 CPU 干扰;报告逐次耗时及汇总口径。单次完整运行用于功能验证,不据此认定性能提升。
|
||||
|
||||
## 分阶段记录
|
||||
|
||||
分别记录输入加载/校验、代码生成、构建和缓存检查、进程启动、C 纯求解 CPU/墙钟、结果整理/序列化/传输,以及网页接收、持久化、曲线展示和导出。只测到总耗时就称为总耗时,不能把差值未经测量地归于某个阶段。
|
||||
分别记录输入加载/校验、代码生成、构建和缓存检查、进程启动、C 积分阶段 CPU/墙钟、结果整理/序列化/传输,以及网页接收、持久化、曲线展示和导出。只测到总耗时就称为总耗时,不能把差值未经测量地归于某个阶段。
|
||||
|
||||
每次运行保存实际设置、成功或失败状态、实际终点、采样数量、求值次数、接受/拒绝步数、雅可比/线性分解次数、事件诊断和守恒结果。报告链接到原始产物,明确哪些阶段未测量、哪些比较因数据不足而跳过。后续优化以通过正确性检查后的同口径数据为依据。
|
||||
|
||||
## 实现中已有的计时与缺失项
|
||||
|
||||
| 字段 / 事件 | 当前范围 | 不能如何使用 |
|
||||
| --- | --- | --- |
|
||||
| CLI `preparationSeconds` | 加载/规范化输入、校验、构造网络、生成 C | 不能单称前端预处理或 C 编译 |
|
||||
| `buildSeconds` | 工具链与依赖检查、预处理、缓存验证、缺失单元编译、链接和部分清理 | 命中时仍非零;不是单纯编译耗时 |
|
||||
| `buildDetails.preprocessSeconds` | 并行预处理段墙钟 | 不包含全部工具链/依赖检查 |
|
||||
| `compileSeconds` / `compileWallSeconds` | 各编译子进程耗时之和 / 编译单元阶段墙钟(也包含复用与复制) | 前者不是 CPU 计时,二者不能相加 |
|
||||
| `linkSeconds` | 链接命令墙钟 | 不含整个构建发布阶段 |
|
||||
| C `solveSeconds` / `solveCpuSeconds` | `native_solve` 内积分调用的墙钟 / CPU,含积分中的采样和事件工作 | 不包含调用前的初始化、首次样本,以及之后的最终追加和 JSON 编码;不能叫完整仿真耗时 |
|
||||
| `processWallSeconds` | Python 从准备启动子进程,到进程退出、日志收集、读取/解析结果结束 | 不是只测 C 程序进程存活时间 |
|
||||
| `phase="complete"` / “正在汇总仿真结果” | runner 已读完结果,后续还有响应组装、传输、网页解析及持久化 | 该文案持续时间不能全部归到后端汇总 |
|
||||
| IndexedDB 事务完成 / sessionStorage 指针发布 | 当前网页结果持久化完成 | 不等于 OS 下载文件落盘 |
|
||||
|
||||
CLI 默认 `--runs 3` 实际执行 1 次预热加 3 次计时运行,`medianSolveSeconds` 不含预热;`--solve-only` 不记录完整曲线,仅适于积分成本观察,不能作为“点击运行→结果可查看/保存”的总耗时或完整曲线验收。
|
||||
|
||||
当前 C/原生适配报告求值、步数、事件计数及 `njev/nlu`,但并未自动输出所有物理量的守恒误差,也没有完整逐试算活动遥测。心跳中的活动字段不等于每一项都被原生程序实时更新;缺少的指标需独立测量/计算,不能把空值或未更新的 0 当作已验证结果。
|
||||
|
||||
网页 CSV 默认在 Web Worker 本地生成;后端保留的 CSV 路由不代表网页实际使用该路由。图表还有按事件诊断分离部分孤立机械力样本的展示逻辑;正确性比较使用原始 series、结果文件或 CSV,并保留事件点,不能以图表截图代替原始数据。
|
||||
Reference in new issue
Block a user