Skip to content

hash::aggregate が全ファイル内容をメモリに溜めてからハッシュ計算している #86

Description

@TwoSquirrels

症状

library/hash.rsaggregate は、全ファイルのパスと内容を Vec に集めてから相対パスでソートし、その後にハッシュ計算のループを回す。巨大なライブラリ (数百 MB 級のヘッダー群や、誤って登録した大きなツリー) の add/update/バンドルごとの verify で、ライブラリ総量ぶんのメモリを一時的に確保する。

対処案

相対パスの決定的な順序が必要なのは事実だが、内容自体は逐次ハッシュに流し込める。先に (相対パス, ファイルサイズ) 等の軽量情報だけを集めてソートし、順にファイルを開いて hasher.update へストリームすれば、ピークメモリをファイル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