Skip to content

1-layout: stdlib 预 layout 持久化复用,砍每次启动的 write_func 全树扫 #269

Description

@miaobyte

现象

callgrind 调用图显示,启动期 art_scan 全来自 Engine::layout_stdlib(inclusive 24.6%)→ write_func(20.3%)→ Kv::set/del_treeart_scan。即 kvlang 每次启动都把整个 stdlib layout 进 kvspace,write_func 触发全树 DFS。小 N 时这段固定启动成本被放大(N=500 时占 ~37%)。

修法

stdlib 预 layout 一次并持久化,后续启动直接复用,不每次重建。

  • 对短程序收益最大(启动成本占比高);
  • 与 #267正交:后者降单次 List 成本,本 issue 降 List 次数(启动期批量 write_func)。二者叠加。

风险

:需处理 stdlib 版本/失效(spec 变更时重建)、共享后端多进程首次 layout 竞争([[kvlang-tutorial-shared-backend-race]] 已知 flushall 冲空 /lib/*)。

关联 #212#202(layout 定位)、kvspace #9

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions