مرجع HotPDF
توفّر HotPDF تخزينًا مؤقتًا محدودًا في الذاكرة بالإضافة إلى ذاكرات تخزين مؤقت دائمة لمجموعات الخطوط الفرعية القابلة لإعادة الاستخدام وللصفحات المرسومة
ذاكرة تخزين مؤقت موزونة
تمتلك THPDFWeightedCache في HPDFCache قيم TObject، وتفهرسها بواسطة AnsiString، وتُخرج القيم الأقل استخدامًا مؤخرًا حتى يتوافق وزنها الإجمالي مع MaxBytes
- ترفع
GetوTryGetأي إصابة إلى الأحدث استخدامًا وتحدّثان إحصاءات الطلبات - تفحص
PeekوContainsKeyالمدخلات دون تغيير ترتيب الحداثة أو إحصاءات الطلبات - تأخذ
Putالملكية، وتستبدل مفتاحًا موجودًا في مكانه، وتقبل بأمان نفس الكائن مجددًا عندما يتغيّر وزنه فقط - تحرّر
Removeمدخلًا، بينما تنقلExtractالملكية إلى المستدعي - يؤدي تقليل
MaxBytesإلى إخراج المدخلات فورًا، وتكشفTrimToBudgetعن عملية التقارب نفسها بشكل صريح - تكشف
HitsوMissesوHitRateوEvictionsوRejectionsوReplacementsعن سلوك ذاكرة التخزين المؤقت، بينما تبدأResetStatisticsفترة قياس جديدة - تنمو سعة الفتحات بشكل هندسي، وتبقى المدخلات الحيّة مترابطة بترتيب حداثة بزمن ثابت
مفاتيح المحتوى
function HPDFCacheKeyOfBytes(const Bytes: TBytes): AnsiString;
function HPDFCacheKeyOfStream(Stream: TStream): AnsiString;
تُعيد كلتا الدالتين مفتاح SHA-256 سداسي عشري بأحرف صغيرة متطابق للمحتوى نفسه
تُجري HPDFCacheKeyOfStream التجزئة (hash) دون تخصيص مصفوفة بايتات ثانية كاملة الحجم، وتقرأ التدفقات القابلة للتموضع (seekable) من الموضع صفر، وتستعيد موضعها الأصلي
ذاكرة فكّ ترميز الخطوط المحمَّلة
يحتفظ كل مثيل THotPDF بفكّ ترميز الخطوط المحمَّلة التي تم تحليلها بنجاح ضمن ذاكرة تخزين مؤقت موزونة من نوع LRU محدودة النطاق بالمستند
- الميزانية الافتراضية هي 32 ميبيبايت مع حد أقصى صارم قدره 128 إدخالًا، وتعطّل ميزانية صفر بايت الاحتفاظ بالبيانات
- تعيد قواميس الخطوط غير المباشرة المشتركة استخدام نواة محلولة واحدة عبر الصفحات حتى عندما تستخدم الصفحات أسماء موارد مختلفة
- يتشارك استخراج النص وتصدير SVG واستبدال النص المحمَّل وطلبات فك الترميز الصريحة الذاكرة المؤقتة نفسها
- تنسخ
GetLoadedFontDecoderالمصفوفات المُدارة نسخًا عميقًا حتى لا يتمكن المستدعون من تعديل التعيينات أو العروض المخزَّنة مؤقتًا - تؤدي إعادة تحميل المستند وتعديل الرسم البياني (graph) وإبطال الصفحة وJSON Patch وكل تعيين لـ
CMapResourcePathإلى مسح فكّي الترميز المحتفَظ بها - تُسلسَل عملية الحصول على فاكّ الترميز لكل مستند لتجنب تحليل خط واحد مرتين، لكن القفل لا يجعل التعديل المتزامن للمستند آمنًا
- تكشف
GetLoadedFontDecoderCacheInfoعن عدد المدخلات والبايتات المقدَّرة والميزانية وعدد الإصابات والإخفاقات وعمليات التحليل والإخراج والإبطالات
ذاكرة فكّ ترميز الصور المحمَّلة المُقسَّمة
ينسّق كل نسخة (instance) من THotPDF إعادة استخدام فك ترميز الصور المحمّلة عبر 16 جزءًا (shards) من البيانات الوصفية مُقفلة بشكل مستقل
- يُبقي بحث القبول في ذاكرة التخزين المؤقت وإدخالها القفل على الجزء (shard) المحدد فقط، بينما يعمل فك ترميز المرشِّح والصور المكلف خارج أقفال ذاكرة التخزين المؤقت
- تنتخب آلية singleflight الدقيقة لكل مفتاح فكّ ترميز واحدًا للمالك وتجعل المستدعين المكررين ينتظرون النتيجة المكتملة نفسها
- تبقى القيم المُهيّأة لـ
ImageCacheMaxBytesوحد عدد المدخلات والحد لكل مدخلة عامّة (global) عبر جميع الشرائح (shards) - تحتفظ مدخلات الصور المفكوكة الترميز بمقابض غير قابلة للتغيير ومعدودة المراجع تبقى بعد الإخراج، وتتيح لمحركات الرسم رسم الإصابات الدافئة دون تجسيد نسخة
TBitmap - تُنسَخ الصور المكتملة إلى نسخ من
TBitmapيملكها المستدعي، بحيث لا يتمكن المستدعون من تعديل بكسلات ذاكرة التخزين المؤقت المحتفَظ بها - تمسح إعادة تحميل المستند وإبطال ذاكرة الصور المدخلات المكتملة، بينما تحتفظ كائنات الطلبات النشطة (flights) بعمرها المعدود المراجع الخاص
- تُبلغ
GetImageDecodeConcurrencyInfoعن الطلبات النشطة (flights) وعمليات فكّ الترميز الخاصة بالمالك النشطة والقصوى وحالات الانتظار والإتمام والإخفاقات
ذاكرة تحويلات ICC
تُشارِك HPDFICC تحويلات كاملة من المصدر إلى sRGB عبر ذاكرة تخزين مؤقت موزونة من نوع LRU سعتها 64 ميبيبايت وآمنة للخيوط (thread-safe)، بما في ذلك ملفات التعريف الخاصة بالبروفة والمخرجات عند تهيئتها
- يغطي مفتاح SHA-256 المصدر الكامل ومحتويات ملفي تعريف الإثبات (proof) والمخرجات ونية العرض الفعلية وإعداد تعويض نقطة السواد
- تُبلغ
HPDFGetICCTransformCacheInfoعن الإصابات والإخفاقات والإخراجات والرفض وعدد المدخلات والبايتات الحالية والحد الأقصى للبايتات - تطبّق
HPDFSetICCTransformCacheMaxBytesميزانية جديدة على مستوى العملية فورًا، وتُخرج التحويلات الأقل استخدامًا مؤخرًا عند الحاجة - تُحرّر
HPDFClearICCTransformCacheالتحويلات المحتفَظ بها وتعيد ضبط إحصاءات الطلبات دون إبطال واجهات التحويل التي يحتفظ بها المستدعون بالفعل
ذاكرة مجموعات الخطوط الفرعية الدائمة
اضبط THotPDF.FontSubsetCacheFolder لتفعيل نتائج المجموعات الفرعية لـ TrueType وOpenType القابلة لإعادة الاستخدام أثناء تفعيل EnableFontSubsetting
- يغطي المفتاح بايتات الخط الأصلية وخريطة البتات الدقيقة للحروف (glyphs) المستخدمة ووضع الضغط (compact) أو التناثر (sparse) وإصدار مخطط ذاكرة التخزين المؤقت
- يعيد كل من مسار مخزن خطوط GDI العادي والمُنهي المسجّل للخطوط يونيكود استخدام الذاكرة المؤقتة نفسها
- تحافظ مدخلات PDF/A المُدمَجة على خريطة GID من القديم إلى الجديد وعدد الحروف الجديدة (glyph) التي يحتاجها
CIDToGIDMap - تُتحقق المدخلات قبل الاستخدام، وتُزال المدخلات التالفة، ويستخدم الاستبدال نقلًا ذريًا داخل المجلد نفسه
- تُطبَّق
FontSubsetCacheMaxBytesفورًا وتُخرج ملفات التخزين المؤقت الدقيقة الأقل استخدامًا مؤخرًا دون اجتياز مجلدات غير ذات صلة - تُبلغ
GetFontSubsetCacheInfoعن الإصابات والإخفاقات وعمليات الكتابة والإخراجات والتلف والرفض وإخفاقات الكتابة والبايتات والملفات - تزيل
ClearFontSubsetCacheفقط مدخلات المجموعات الفرعية للخطوط والمدخلات المؤقتة المهجورة من المجلد المُهيَّأ
PDF.EnableFontSubsetting := True;
PDF.FontSubsetCacheFolder := 'C:\ProgramData\MyApp\HotPDF\FontSubsets';
PDF.FontSubsetCacheMaxBytes := 256 * 1024 * 1024;
ذاكرة الصفحات المرسومة الدائمة
اضبط THotPDF.RenderCacheFolder لتفعيل طبقة القرص المستخدَمة بعد ذاكرة التخزين المؤقت للصفحات المرسومة في الذاكرة
- تُفهرَس ملفات الصفحات وفق محتوى المستند، وفهرس الصفحة المبني على الصفر، ودقة DPI، ورؤية المحتوى الاختياري الفعلية، ونية اللون، وسياسة التراجع (fallback)
- تختار تغييرات الطبقة ونية اللون صيغ حالة قابلة لإعادة الاستخدام بدلًا من إسقاط كل bitmap مخبأ
- تحديثات PNG والفهرس ذرية، وتُزال الملفات المؤقتة المهجورة أثناء الاسترجاع
- تحدّث قراءات الصفحات حداثة مستوى الصفحة، بينما تُخرج حدود عدد المستندات وعدد الصفحات والبايتات البيانات الأقل استخدامًا مؤخرًا
- تقليص حد مهيأ يتقارب فورًا بدلًا من انتظار كتابة لاحقة
- تُصلَّح ملفات PNG التالفة وصفوف الفهرس القديمة أو المكررة والمجلدات المفقودة ومجلدات الذاكرة المؤقتة غير المفهرسة تلقائيًا
- تُرفض مفاتيح المستندات والإحداثيات غير الصالحة قبل الوصول إلى نظام الملفات
- تُتخطى مجلدات المستندات المرتبطة أثناء الاسترجاع والقراءة والكتابة والإبطال والإخراج؛ وتُحفَظ الروابط وملفاتها الهدف الخارجية
الملكية
- تمتلك
THPDFWeightedCacheالقيم المُمرَّرة إلىPutما لم تُعَد القيمة عبرExtract - تُعيد
THPDFDiskPageCache.Lookupbitmap مُخصَّصة حديثًا يملكها المستدعي - تبقى قيم bitmap المُمرَّرة إلى
THPDFDiskPageCache.Storeمملوكة للمستدعي
واجهات ذات صلة
- ذاكرة التخزين المؤقت الدائمة لمجموعات الخطوط الفرعية
- THotPDF.LoadedFontDecoderCacheMaxBytes
- THotPDF.GetLoadedFontDecoderCacheInfo
- ذاكرة تخزين مؤقت مجزأة لفك تشفير الصور المحمّلة
- THotPDF.GetImageDecodeConcurrencyInfo
- THotPDF.RenderCacheFolder
- THotPDF.RenderCacheMaxDocuments
- THotPDF.RenderCacheMaxBytes
- THotPDF.RenderLoadedPageToBitmapCached
- تشخيصات العرض وتتبّع بيانات العمليات