
การเพิ่มประสิทธิภาพการแสดงผลเอกสารขนาดใหญ่ใน ASP.NET Core
ความเร็วคือคุณลักษณะ
เมื่อผู้ใช้คลิก "View Document" พวกเขาคาดหวังให้โหลด ทันที ไม่ว่าจะเป็นบันทึก 3 หน้า หรือเอกสารกฎหมายยาว 5,000 หน้า การรอคอยไม่มีทางเลือก Doconut ถูกออกแบบให้เร็ว แต่สำหรับการทำงานระดับองค์กร การปรับแต่งการทำงานของคุณเป็นสิ่งสำคัญ
1. กลยุทธ์การแคชอัจฉริยะ
การเรนเดอร์หน้าเดียวกันซ้ำหลายครั้งเป็นการเสียวงจร CPU ที่ไม่จำเป็น อินเทอร์เฟซการแคชในตัวของ Doconut อนุญาตให้คุณเก็บรูปภาพหน้าที่เรนเดอร์อย่างมีประสิทธิภาพ
- Disk Caching: เหมาะสำหรับการตั้งค่าเซิร์ฟเวอร์เดียวที่มีการจัดเก็บ NVMe ที่เร็ว หน้าเรนเดอร์จะถูกบันทึกลง
App_Dataและให้บริการแบบสถิตย์ในการร้องขอครั้งต่อไป - Distributed Caching (Redis): จำเป็นสำหรับฟาร์มที่ทำ load‑balancing หาก Server A เรนเดอร์หน้า 5 Server B ควรสามารถให้บริการหน้านั้นได้โดยไม่ต้องเรนเดอร์ใหม่ Doconut รองรับการนำเข้า implementation ของ
ICacheเพื่อต่อเชื่อมโดยตรงกับ Redis หรือ Memcached
2. Lazy Loading & Virtualization
ห้ามส่งเอกสารทั้งหมดพร้อมกัน Doconut ใช้แนวทาง virtualized scrolling
- เพียงหน้าที่มองเห็นได้ (พร้อมบัฟเฟอร์เล็กน้อย) เท่านั้นที่จะถูกร้องขอจากเซิร์ฟเวอร์
- เมื่อผู้ใช้เลื่อนหน้าจอ หน้าต่างใหม่จะถูกดึงตามความต้องการ วิธีนี้ทำให้การเปิดไฟล์ PDF ขนาด 100 MB ใช้เวลาโหลดเริ่มต้นเทียบเท่ากับไฟล์ 1 MB
3. Concurrency & Threading
ใน ASP.NET Core การจัดการทรัพยากรเป็นสิ่งสำคัญ
- Parallel Processing: Doconut สามารถใช้ CPU หลายคอร์เพื่อพรี‑เรนเดอร์หน้าที่อยู่ติดกันขณะผู้ใช้กำลังอ่านหน้าปัจจุบัน
- Token Management: ปิด handle ของเอกสาร (
objDoc.Close()) ทันทีเมื่อไม่ต้องการแล้ว (หรือใช้บล็อกusing) เพื่อให้ขนาดหน่วยความจำต่ำลง
4. Format-Specific Optimizations
- PDFs: ตรวจสอบให้แน่ใจว่า “Fast Web View” (Linearization) ไม่จำเป็นต่อ Doconut (เพราะเรานำเรนเดอร์บนเซิร์ฟเวอร์) แต่โครงสร้างภายในที่ได้รับการปรับแต่งจะช่วยได้
- Images: สำหรับ TIFF/JPEG ขนาดใหญ่ การเปิดใช้ tiled rendering ของ Doconut สามารถป้องกันข้อยกเว้น OutOfMemory ได้โดยการประมวลผลภาพเป็นชิ้น ๆ
Scaling Up
สำหรับแอปพลิเคชันที่ให้บริการผู้ใช้หลายพันคนพร้อมกัน Doconut พร้อมทำงานแบบ stateless-ready การแยกที่เก็บข้อมูล (S3/Azure Blob) และแคช (Redis) ทำให้คุณสามารถขยายอินสแตนซ์คอมพิวเตอร์ในแนวนอน (Kubernetes/App Service Plan) เพื่อรับมือกับการเพิ่มขึ้นของทราฟฟิกได้ทุกระดับ
มอบ การดูเอกสารเร็วแสง ด้วยการปรับแต่ง Doconut อย่างเหมาะสม.