File tree Expand file tree Collapse file tree 2 files changed +13
-6
lines changed
Expand file tree Collapse file tree 2 files changed +13
-6
lines changed Original file line number Diff line number Diff line change 3030(define completions (make-ptree))
3131(define completions-cache (make-ahash-table))
3232(define-public scheme-completions-built? #f )
33+ (define scheme-completions-initialized? #f)
3334
3435(define (clear-completions-cache )
3536 (set! completions-cache (make-ahash-table)))
9293
9394(tm-define (scheme-completions root)
9495 (:synopsis " Provide the completions for @root with caching" )
95- (when (not core-symbols-loaded?)
96- (load-core-symbols))
96+ (unless scheme-completions-initialized?
97+ (set! scheme-completions-initialized? #t )
98+ (scheme-completions-rebuild))
9799
98100 (let ((root-str (tmstring->string root)))
99101 (let ((cached (ahash-ref completions-cache root-str)))
132134 (scheme-completions-add (symbol->string sym)))
133135
134136(if developer-mode? (set! %new-read-hook %read-symbol-hook ))
135-
136- (delayed
137- (:idle 100 )
138- (scheme-completions-rebuild))
Original file line number Diff line number Diff line change 11# 207_7 Scheme补全项计算的性能问题
22
3+ ## 2025/08/01 修正补全树的创建时间
4+
5+ ### What
6+ 推迟补全树的构建
7+
8+ ### Why
9+
10+ 补全树会带来启动延迟
11+
312## 2025/07/28 实现Scheme弹窗补全的分阶段加载与缓存机制
413
514本次优化严格采用哈希表(ahash-table)作为补全缓存底层结构,避免了传统 assoc-set! 基于链表遍历(O(n))的低效。实际代码中所有缓存操作均为 O(1) 的 ahash-ref、ahash-set!,不存在 assoc-set! 性能瓶颈,适合大规模和高频查询的实际场景。
You can’t perform that action at this time.
0 commit comments