境界付きオブジェクトストリームキャッシュ

ロード済みクロスリファレンスストリームは、デコード済みのすべての /Type /ObjStm コンテナをメモリに保持しなくても、圧縮メンバーをインデックス化できます

バイト制限と退避

ObjectStreamCacheMaxBytes はデコード済みコンテナの予算を設定し、デフォルトは 64 MiB です

挿入によって予算を超えた場合、非アクティブなコンテナは最も最近使用されていない順に個別に退避されますが、パーサービューが現在提供しているコンテナは、そのビューが閉じるまで保護されます

そのため、制限を超える単一のコンテナはアクティブな解析中は常駐できますが、保持されるバイトはその後すぐに設定済み制限に収束します

再読み込み可能なメンバー

退避はオブジェクト番号インデックスと検証済みメンバーオフセットを保持します

後続のメンバー解決は元のコンテナストリームを再度開き、ドキュメント復号とストリームフィルタを再適用し、既存のゼロコピースライスビューを通じて要求されたメンバーを解析します

メンバー解決の間でデコード済みコンテナを保持しない場合は、制限をゼロに設定してください

テレメトリ

GetLoadedObjectStreamCacheInfo は、設定済み制限、現在およびピークのデコード済みバイト、退避と再読み込みの回数、メンバーキャッシュのヒットとミス、ゼロコピースライスのアクティビティを報告します

関連項目: ObjectStreamCacheMaxBytes, GetLoadedObjectStreamCacheInfo, Zero-Copy Object-Stream Slices