自動追従で追記分だけを解析するようにした
解析を SessionParser に切り出し、前回読んだ位置から先だけを読み足せる ようにした。書きかけの行は消費せず次回に持ち越す。先頭と解析済み末尾の バイト列で「追記の続きか」を判定し、違えば頭から読み直す。 Store はファイルごとに Entry (パーサ + ロック) を持つ。追記解析は状態を 持つので、同じファイルを複数スレッドで同時に解析しないようにしている。 実測 (追記1行あたり): 1.4MB 13.1ms -> 7.8ms、14MB 59.0ms -> 8.2ms。 残りはファイル open の実費で、ログサイズによらず一定になった。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -107,6 +107,7 @@ python chktime.py
|
||||
- `[Request interrupted...]`(Esc 中断)が含まれるターンには ⚠ を付けます。
|
||||
- セッション再開時に書かれるメタ行(attachment / system / mode 等)は、ターンの所要時間には数えません。
|
||||
- 解析結果はファイルの更新時刻+サイズでキャッシュします。変わったファイルだけ再解析するので、自動追従がオンなら手動操作は不要です。
|
||||
- 追記されただけのファイルは**増えたぶんだけ**読み足します(書きかけの行は次回に持ち越し)。先頭と解析済み末尾のバイト列が変わっていた場合=ログが書き換えられた場合は頭から読み直します。
|
||||
|
||||
## ファイル
|
||||
|
||||
|
||||
Reference in New Issue
Block a user