Skip to content

FlashDir v3.5.2

Choose a tag to compare

@BlkSword BlkSword released this 13 Oct 05:54
· 4 commits to main since this release

FlashDir v3.5.2 Release Notes

自 3.5.1 以来的累积更新:缺陷修复 + 一轮全量性能优化(每项都有 release 实测前后对比;
测量口径、以及被实测证伪的尝试见 docs/perf.md)。

性能(release 实测,本机真实数据:全局索引 311 万条)

项目 结果
启动索引构建 2.27 s → 0.66 s(−70.8%)
检索翻页(连续加载 10 页) 215 ms → 1.16 ms;越界翻页 → 200 ns
中文(CJK)包含匹配 −28~38%
全局索引常驻内存 −50 MB(name_lower 内联;文本类查询同时 −10~19%)
目录缓存 blob 体积 −20.6%、解码 −33.3%
索引载入期间目录缓存阻塞 1491 ms → 0.2 ms
索引库体积 / 载入 / 首次启动冻结 −19.3% / −14.5% / 53 s → 1.3 ms

界面

  • 索引构建期间可见"进行中":状态栏显示呼吸状态点 + "扫描中 · 已用 Ns",右下角进度卡
    追加"已用 Ns"。此前状态栏只按条目数判断,构建期条目数仍为 0,于是整个过程都显示
    "未建立",建完直接跳成"N 项"(只有两态);且首次启动时后端"开始构建"的事件可能早于
    前端注册监听而被丢弃,导致界面完全看不到构建发生——现改为 notLoaded 也做有界轮询。

兼容性提醒(磁盘索引/缓存格式):本版把 global_index 表从 9 列收拢为 4 列
(去掉 name/name_lower/ext/drive/created_at 这些只写不读的列)。
收拢只在用户主动"重建索引"时发生;启动路径不会改动老库结构,也不会再有首次启动的
长时间迁移(最初实现为启动期同步执行约 42s,已改掉:实测 53.3s → 1.31ms)。收拢后:

  • 缓存库体积约 −19%、全局索引载入约 −15%;
  • 旧版本(≤3.5.1)将无法再向全局索引写入(其 INSERT 引用了已删除的列),表现为
    索引不再落盘、下次启动需重建;内存中的搜索不受影响。若要回退到旧版本,删除
    %USERPROFILE%\.flashdir\cache_v2.db 后用旧版本重建索引即可;
  • 收拢不可逆,没有回滚路径;
  • 老库(未重建过)保持原样,读写行为与旧版本一致。

本轮为 3.5.2 的缺陷修复,主题分类如下(详细逐项验证结论见提交说明):

  • 前端主题令牌:统一深/浅色设计令牌,修正主题切换后局部颜色未跟随的问题。
  • 索引分桶正确性:修正包含匹配被首字符分桶截断、分桶快路径只适用于正向 前缀* 条件。
  • USN 一致性:修正取消代号、已校验 USN 与增量窗口失效后的回退路径,避免返回陈旧结果。
  • 非 Windows 编译:补齐平台门控,避免在非 Windows 目标上引用 Windows 专有符号。
  • MFT 解析边界:修正记录解析的边界与占位记录处理,避免脏数据进入结果与索引。
  • 分析引擎正确性:重复文件、开发缓存与快照差异统计的口径与排序修正。
  • MCP 加固:请求头与请求体上限、令牌常量时间比较与全方法校验、工具标注。
  • 文档与 CI 校准:README 与 MCP 设计文档对齐当前实现;CI 增补生产嵌入构建与 MCP 自测。