頁面物件反向索引
HotPDF 維護一份文件本地的反向索引,把頁面物件身分對應到零基頁面位置
查詢行為
GetPageArrIndexForObjectNumber 接受 PDF 物件編號,GetPageArrIndexForObject 則接受已解析的頁面物件或 THPDFLink
兩個方法在值無法對應到目前頁面時都回傳 -1
格式錯誤的輸入若讓同一身分出現多次,以文件順序中的第一頁確定性勝出
建置與失效
索引在第一次查詢時惰性建置,物件編號與已解析物件指標各用一張開放定址對應表
載入、重設、新增、刪除、複製、取代、移動、反轉、交換、重排或核對頁面都會使對應表失效
下一次查詢會依目前頁面順序重建兩張對應表,變更成本因此不含立即的索引重建
效能與擁有權
對應表的負載因數保持在二分之一以下,O(page count) 建置之後可提供期望常數時間的查詢
回歸閘在 100,000 頁的表中於變更後執行一百萬次查詢,要求兩個支援的 Windows 目標上 p95 延遲低於 5 微秒
索引存放非擁有的物件指標,並隨所屬 THotPDF 執行個體一起釋放
不要在頁面查詢的同時並行變更 THotPDF 執行個體,因為已載入文件的圖形變更仍由呼叫端序列化
另請參閱: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics