Skip to content

perf(t9): 九键快速输入长序列性能优化——wordgraph 双向增量缓存 + 插入式快通道 - #739

Open
minilulubai wants to merge 1 commit into
ximeiorg:mainfrom
minilulubai:perf/t9-fast-input-flush
Open

perf(t9): 九键快速输入长序列性能优化——wordgraph 双向增量缓存 + 插入式快通道#739
minilulubai wants to merge 1 commit into
ximeiorg:mainfrom
minilulubai:perf/t9-fast-input-flush

Conversation

@minilulubai

Copy link
Copy Markdown
Contributor

@kingzcheung 目前九键快速输入长序列时会出现明显卡顿,特别是开启了简拼( - abbrev/^([a-z]).*/$1/ - abbrev/^([A-Z]).*/$1/), 本轮旨在解决此问题,具体方案描述见关联issue中方案描述,请协助审阅,目前实现,绝大部分都在librime-t9中。已跟进了主线变动。

概述

解决九键快速输入长数字序列时预编辑与候选列表无法实时同步刷新(部分输入序列测试: 单键 438-459ms)的问题。

  • T9InputController: 数字键 flush 合帧,跳过非队尾帧的全量 compose
  • t9_script_translator(新文件):基于librime源码直接 复刻 ScriptTranslation,wordgraph 跨键双向增量缓存 (追加/退格都复用词条快照,首键冷启动全量),修复 poet_ 空指针与 user_phrase_iter_ 初始化错误
  • t9_patch_utils: 插入式两条 patch 接入(@after 1 + 哨兵 tag),不覆盖 translators 列表中:script_translator,但防止防它与:t9_script_translator重复计算
  • t9_processor: 左栏拼音模式判定兼容新组件名
  • rime_jni: 快通道 patch 管线 + readCurrentState/getComposition 逐候选日志精简

关联 Issue

Closes #677

改动类型

  • 新功能
  • 功能优化
  • Bug 修复
  • 重构
  • CI / 构建
  • 文档

自测清单

  • 代码编译通过
  • 已运行 ./gradlew test 并通过
  • 已在真机/模拟器上验证

备注

目前在不修改librime源码前提下,仅能通过在librime-t9中去优化,后续将继续探索优化:librime 中:dict.LookupPoet,以应对简拼开启后性能波动,或者找寻找新的简拼打开方式。

解决九键快速输入长数字序列时预编辑与候选列表无法实时同步刷新(单键 438-459ms)的问题。

- T9InputController: 数字键 flush 合帧,跳过非队尾帧的全量 compose
- t9_script_translator(新): 复刻 ScriptTranslation,wordgraph 跨键双向增量缓存
  (追加/退格都复用词条快照,首键冷启动全量),修复 poet_ 空指针与
  user_phrase_iter_ 初始化错误
- t9_patch_utils: 插入式两条 patch 接入(@after 1 + 哨兵 tag),不覆盖
  translators 列表,防双计算
- t9_processor: 左栏拼音模式判定兼容新组件名
- rime_jni: 快通道 patch 管线 + readCurrentState/getComposition 逐候选日志精简
@kingzcheung kingzcheung linked an issue Aug 27, 2026 that may be closed by this pull request
@minilulubai

Copy link
Copy Markdown
Contributor Author

@kingzcheung 请暂时不要合入它,目前问题:每次按键输入时不是像全键盘全量构建,采用 wordgraph 增量缓存不能保证正确性,会出现这样预编辑文本出现数字的情况,正向:就是性能确实明显提升。还在找新的解决方案。简拼引入满足输入需求,但是让性能优化陡增。

@kingzcheung kingzcheung linked an issue Aug 27, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] debug包测试发现的问题2 [Bug] debug包测试发现的问题1 [Bug] fix: 九键快速输入长序列异常卡顿计划

1 participant