Files
SystemSimulationApp/docs/update-log/更新日志-2026-09-15.md
T

33 lines
3.6 KiB
Markdown

# 更新日志 — 2026-09-15
## 浏览器工程名称与最新存档恢复
- 刷新页面时,从最后一次浏览器存档恢复工程名称;元件仍通过“加载工程”或“恢复草稿”明确恢复。
- “加载工程”统一读取最后一次成功的自动保存或手动浏览器保存,同时恢复工程名称、元件、连接、参数和仿真配置,不再根据名称输入框查找历史命名工程,也不加载仿真结果。
- 初始空白画布不会触发自动保存覆盖已有存档;真正编辑后继续自动保存。明确保存的空工程仍按最新存档加载,不回退到旧的非空副本。
- 没有最新存档或存档格式无效时报告原因,不猜选历史工程。既有历史命名存档和草稿恢复机制保留,不删除用户数据。
### 存储位置
- 逻辑位置:开发者工具 → Application(应用程序)→ Local Storage(本地存储)→ 当前网站 → `system-simulation-flow:autosave`。
- 自动保存和手动保存共用上述最新存档键;手动保存另保留 `system-simulation-flow:project:<编码后的工程名>` 命名副本。加载按钮不再从这些副本中选择。
- 工程存于浏览器管理的数据库,不是项目文件夹内的独立 JSON。网站协议、主机和端口不同,存储相互隔离。
- Windows Edge 默认配置目录:`C:\Users\KSpray2\AppData\Local\Microsoft\Edge\User Data\Default\Local Storage\leveldb`。
- Windows Chrome 默认配置目录:`C:\Users\KSpray2\AppData\Local\Google\Chrome\User Data\Default\Local Storage\leveldb`。
- 实际配置目录需在 `edge://version` 或 `chrome://version` 查看“个人资料路径”,再拼接 `Local Storage\leveldb`;非默认配置不使用 `Default`。需要独立备份文件时请导出 JSON,不直接编辑数据库文件。
### 验证范围
- 新增刷新名称恢复、防止初始空画布覆盖、自动/手动保存先后顺序、无最新存档及空工程加载回归。
- 更新既有测试的加载入口数据,覆盖参数编辑、建模操作、工程持久化及首次适配视图。
- TypeScript 检查和生产构建通过。六组端到端回归共 58 项,57 项通过;本次名称/存档恢复相关测试全部通过。剩余一项旧控制台测试期望“等待仿真任务”,实际收到后端启动自检通过信息,未修改该测试或自检逻辑。
## 结果存储额度增量优化
- 修复原生仿真每写一块数据就遍历全部历史结果、同步重写清单导致的等待开销。改为批量持久化额度、逐块内存扣减,额度不足时才重新检查目录。
- 预留窗口最多 16 MiB,并根据总配额与实际剩余空间缩小;结束归还未消费额度。不额外分配同等内存,不改变采样、结果格式和求解精度。
- 保留跨进程配额锁、使用中结果保护、未知文件保护、异常退出和 CRC 校验;不为预留窗口而额外删除历史结果。
- 新增额度边界/并发回归及真实文件系统新旧路径对比脚本。100 条历史、每份清单 1,000 个变量、256 次 64 KiB 申请的额度管理平均耗时由约 52.25 秒降至 0.229 秒;这是存储管理微基准,不代表整体仿真同比提速。
- 300 条历史、100,001 采样点的机械模型两轮实测:平均总耗时由 30.06 秒降至 1.44 秒,状态/输出二进制与全部返回采样值一致。五组回归共 56 项,53 项通过,3 项因 Windows 符号链接权限限制跳过。
- 测试方法、适用边界和后续验证记录见 [结果存储额度增量优化验证](../other/结果存储额度增量优化验证-2026-09-15.md)。