Skip to content

library add/update がライブラリの全内容を2回ディスクから読む #85

Description

@TwoSquirrels

症状

library/registry.rsregister は、identifiers::enumerate で全ソースファイルを読み込んだ直後、hash::aggregate が同じファイル群をディスクからもう一度全読みする。

let names = identifiers::enumerate(source_root, |relative| eprintln!("  {relative}"))?;
let hash = hash::aggregate(source_root)?;

数千ファイル・数十 MB 級のライブラリを library add/update すると、全内容のディスク読み込みが丸ごと2周走り、登録時間の読み取り分がそのまま倍になる (特にコールドキャッシュ環境で顕著)。

対処案

fs::source::walk_sources を1回にまとめ、同じ走査の中で各ファイルの内容を識別子抽出とハッシュ計算 (逐次更新) の両方へ渡す。

🤖 Generated with Claude Code

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

    Kind/EnhancementImprove existing functionalityModule: LibraryThe library registration domainPerformanceRelated to runtime or registration speedPriority/LowThe priority is low

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions