Cache Dekode Gambar Ter-Shard yang Dimuat

HotPDF menggabungkan metadata cache terkunci-independen dengan koordinasi singleflight tepat per-kunci

Kerja paralel

Enam belas shard metadata membatasi kontensi selama pencarian, penerimaan, dan pengusiran sementara dekode gambar yang mahal berjalan di luar kunci cache

Permintaan untuk kunci berbeda dapat mendekode secara bersamaan dan permintaan untuk kunci yang sama memilih satu pemilik yang hasil selesainya dibagikan ke semua pemanggil yang menunggu

Batas global

ImageCacheMaxBytes, jumlah entri maksimum, dan ukuran per-entri maksimum berlaku untuk gabungan konten semua shard

Pemangkasan lintas-shard mempertahankan batas terkonfigurasi yang tepat dan menghindari memilih shard yang baru saja disisipkan sementara shard lain dapat memenuhi permintaan pengusiran

Kepemilikan dan masa hidup

AcquireLoadedImageStream dan AcquireLoadedImageRegionAtResolution mengembalikan handle terhitung-referensi tak-terubah, sehingga hit hangat dan penunggu singleflight berbagi penyimpanan terdekode tanpa menyalin piksel

Handle tetap valid setelah pengusiran cache, invalidasi, dan penghancuran dokumen, sedangkan CreateBitmapCopy menyediakan bitmap terisolasi milik pemanggil saat piksel yang dapat diubah diperlukan

Metode dekode ter-cache lama mempertahankan kontrak TBitmap milik-pemanggil dengan mewujudkan satu salinan dari handle

Telemetri

GetImageDecodeConcurrencyInfo mengekspos penghitung konkurensi langsung dan kumulatif

Penghitung mengekspos akuisisi handle, salinan bitmap kompatibilitas, dan byte yang disalin selain aktivitas pemilik paralel dan singleflight

API terkait

IHPDFDecodedBitmapHandle · AcquireLoadedImageStream · AcquireLoadedImageRegionAtResolution · THPDFImageDecodeConcurrencyInfo