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