頁面物件反向索引

HotPDF 維護一份文件本地的反向索引,把頁面物件身分對應到零基頁面位置

查詢行為

GetPageArrIndexForObjectNumber 接受 PDF 物件編號,GetPageArrIndexForObject 則接受已解析的頁面物件或 THPDFLink

兩個方法在值無法對應到目前頁面時都回傳 -1

格式錯誤的輸入若讓同一身分出現多次,以文件順序中的第一頁確定性勝出

建置與失效

索引在第一次查詢時惰性建置,物件編號與已解析物件指標各用一張開放定址對應表

載入、重設、新增、刪除、複製、取代、移動、反轉、交換、重排或核對頁面都會使對應表失效

下一次查詢會依目前頁面順序重建兩張對應表,變更成本因此不含立即的索引重建

效能與擁有權

對應表的負載因數保持在二分之一以下,O(page count) 建置之後可提供期望常數時間的查詢

回歸閘在 100,000 頁的表中於變更後執行一百萬次查詢,要求兩個支援的 Windows 目標上 p95 延遲低於 5 微秒

索引存放非擁有的物件指標,並隨所屬 THotPDF 執行個體一起釋放

不要在頁面查詢的同時並行變更 THotPDF 執行個體,因為已載入文件的圖形變更仍由呼叫端序列化

另請參閱: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics