ページオブジェクト逆索引

HotPDF は、ページオブジェクトの同一性からゼロベースのページ位置へのドキュメントローカル逆索引を維持します

ルックアップの動作

GetPageArrIndexForObjectNumber は PDF オブジェクト番号を受け入れ、GetPageArrIndexForObject は解決済みページオブジェクトまたは THPDFLink のいずれかを受け入れます

両方のメソッドは、値が現在のページを識別しない場合に -1 を返します

不正な入力が同じ同一性を複数回公開する場合、ドキュメント順で最初のページが決定的に優先されます

構築と無効化

索引は最初のルックアップで遅延構築され、オブジェクト番号と解決済みオブジェクトポインタの別々のオープンアドレス方式マップを使用します

ロード、リセット、追加、削除、コピー、置換、移動、反転、交換、並べ替え、ページの整合はマップを無効化します

次のルックアップは現在のページ順序から両方のマップを再構築するため、変更コストに即時索引再構築は含まれません

パフォーマンスと所有権

マップは負荷率を半分未満に保ち、O(ページ数) の構築後に期待される定数時間ルックアップを提供します

リグレッションゲートは、100,000 ページのテーブルで変更後に 100 万回のルックアップを実行し、サポート対象の両方の Windows ターゲットで p95 待ち時間が 5 マイクロ秒未満であることを要求します

索引は非所有オブジェクトポインタを格納し、その THotPDF インスタンスとともに解放されます

ロード済みドキュメントグラフの変更は呼び出し元による直列化のままであるため、ページルックアップと同時に THotPDF インスタンスを変更しないでください

関連項目: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics