تحسين عرض المستندات الكبيرة في ASP.NET Core
← Back to Blog2 min read

تحسين عرض المستندات الكبيرة في ASP.NET Core

السرعة ميزة

عند نقر المستخدم على "View Document"، يتوقع أن يُحمَّل فورًا. سواءً كان مذكرة من 3 صفحات أو تقرير قانوني من 5,000 صفحة، الانتظار ليس خيارًا. تم تصميم Doconut للسرعة، ولكن بالنسبة للأعباء العملية على نطاق المؤسسة، تحسين التنفيذ الخاص بك هو المفتاح.

1. استراتيجيات التخزين المؤقت الذكية

إعادة عرض نفس الصفحة مرارًا يعد إهدارًا لدورات وحدة المعالجة المركزية. واجهة التخزين المؤقت المدمجة في Doconut تتيح لك تخزين صور الصفحات التي تم عرضها بفعالية.

  • التخزين المؤقت على القرص: مثالي لإعدادات الخادم الواحد مع تخزين NVMe سريع. يتم حفظ الصفحات المعروضة في App_Data وتُخدم بشكل ثابت في الطلبات اللاحقة.
  • التخزين المؤقت الموزع (Redis): ضروري لمزارع الخوادم المتوازنة. إذا كان الخادم A يعرض الصفحة 5، ينبغي للخادم B أن يكون قادرًا على تقديمها دون إعادة العرض. يدعم Doconut تنفيذات ICache مخصصة للاتصال مباشرة بـ Redis أو Memcached.

2. التحميل الكسول والافتراضية

لا تقم بإرسال المستند كاملًا مرة واحدة. يستخدم Doconut نهج التمرير الافتراضي.

  • يتم طلب الصفحات المرئية فقط (مع إضافة مخزن صغير) من الخادم.
  • مع تمرير المستخدم، يتم جلب صفحات جديدة عند الطلب. هذا يضمن أن فتح ملف PDF بحجم 100 ميغابايت يستغرق تقريبًا نفس زمن التحميل الأولي لملف بحجم 1 ميغابايت.

3. التزامن والخيوط

في ASP.NET Core، إدارة الموارد أمر حاسم.

  • المعالجة المتوازية: يمكن لـ Doconut الاستفادة من وحدات المعالجة متعددة الأنوية لتجهيز الصفحات المجاورة مسبقًا بينما يقرأ المستخدم الصفحة الحالية.
  • إدارة الرموز: أغلق مقبض المستند (objDoc.Close()) فورًا عندما لا يكون بحاجة إليه (أو استخدم كتل using) لتقليل استهلاك الذاكرة.

4. تحسينات مخصصة للنوع

  • ملفات PDF: تأكد من أن "Fast Web View" (التسلسلية) ليست ضرورية تمامًا لـ Doconut (نظرًا لأننا نقوم بالعرض على الخادم)، ولكن الهياكل الداخلية المُحسنة تساعد.
  • الصور: بالنسبة لملفات TIFF/JPEG الكبيرة، يمكن لتمكين العرض المتجزئ في Doconut أن يمنع استثناءات OutOfMemory من خلال معالجة الصورة على دفعات.

التوسع

لتطبيقات تخدم آلاف المستخدمين المتزامنين، Doconut جاهز بدون حالة. من خلال تجريد التخزين (S3/Azure Blob) والتخزين المؤقت (Redis)، يمكنك توسيع مثيلات الحوسبة أفقياً (Kubernetes/خدمة App Service) للتعامل مع أي زيادة مفاجئة في الحركة.

قدّم عرض مستندات سريع كالبرق باستخدام تنفيذ Doconut مضبوط.

#Performance#ASP.NET Core#Caching#Optimization#Scalability