BufferedSamRecords::new() reserves 10,000 records per read

クローズ 初心者向け
#280 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 4 日以内に返信

まだ誰も着手していません。

  • #281 @BenjaminDEMAILLE による — マージされずにクローズ

評価

難易度
1/5
見積もり時間
1時間未満
初心者へのやさしさ
88/100
issue の種類
リファクタリング
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
rust

調査の方向性

src/io/sam.rs の BufferedSamRecords::new() から始め、その呼び出し元を調べて、バッチ単位ではなく read 単位で作成されていることを確認します。バッチレベルでの大きな予約を維持しつつ、read ごとの容量を小さい値またはゼロに変更します。各 read に対する 10,000 レコードの割り当てを回避し、バッチレベルの予約を削除していなければ完了です。

索引モデルが issue の本文から書いたものです。

説明

BufferedSamRecords::new() in src/io/sam.rs pre-allocates capacity for 10,000 records, but it is created per read, not per batch. That is a large allocation (and free) on every read, for a buffer that typically holds 1 to a few records.

Found while working on #278.

Fix: size it for the per-read case (small or zero capacity), and keep any large reservation at the batch level.

Tracking: #277

🤖 Generated with Claude Code

主要言語
Rust
スター
91
フォーク
9
平均マージ
16時間 43分
マージ済み PR(30日)
22

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

scverse/rustar-aligner のほかの issue

scverse/rustar-aligner の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。