
Mengoptimalkan Rendering Dokumen Besar di ASP.NET Core
Kecepatan adalah Fitur
Saat pengguna mengklik "View Document", mereka mengharapkan dokumen muncul seketika. Baik itu memo tiga halaman maupun risalah hukum sepanjang 5.000 halaman, menunggu bukanlah pilihan. Doconut dirancang untuk kecepatan, tetapi untuk beban kerja berskala perusahaan, mengoptimalkan implementasi Anda sangat penting.
1. Strategi Caching Pintar
Merender halaman yang sama berulang‑ulang adalah pemborosan siklus CPU. Antarmuka caching bawaan Doconut memungkinkan Anda menyimpan gambar halaman yang telah dirender secara efisien.
- Caching Disk: Hebat untuk setup server tunggal dengan penyimpanan NVMe cepat. Halaman yang dirender disimpan ke
App_Datadan disajikan secara statis pada permintaan berikutnya. - Caching Terdistribusi (Redis): Penting untuk farm yang di‑load‑balance. Jika Server A merender Halaman 5, Server B harus dapat menyajikannya tanpa merender ulang. Doconut mendukung implementasi
ICachekustom untuk langsung terhubung ke Redis atau Memcached.
2. Lazy Loading & Virtualisasi
Jangan pernah mengirim seluruh dokumen sekaligus. Doconut menggunakan pendekatan virtualisasi gulir.
- Hanya halaman yang terlihat (ditambah buffer kecil) yang diminta dari server.
- Saat pengguna menggulir, halaman baru diambil sesuai permintaan. Hal ini memastikan bahwa membuka PDF berukuran 100 MB memerlukan waktu pemuatan awal yang kira‑kira sama dengan file berukuran 1 MB.
3. Konkruensi & Threading
Di ASP.NET Core, manajemen sumber daya sangat penting.
- Pemrosesan Paralel: Doconut dapat memanfaatkan CPU multi‑core untuk pra‑render halaman yang berdekatan sementara pengguna membaca halaman saat ini.
- Manajemen Token: Tutup handle dokumen (
objDoc.Close()) segera bila tidak lagi diperlukan (atau gunakan blokusing) untuk menjaga jejak memori tetap kecil.
4. Optimasi Spesifik Format
- PDF: Pastikan "Fast Web View" (Linearization) tidak benar‑benar diperlukan untuk Doconut (karena kami merender di server), tetapi struktur internal yang dioptimalkan membantu.
- Gambar: Untuk TIFF/JPEG yang sangat besar, mengaktifkan rendering berubin Doconut dapat mencegah pengecualian OutOfMemory dengan memproses gambar dalam potongan.
Skalasi
Untuk aplikasi yang melayani ribuan pengguna secara bersamaan, Doconut bersifat stateless-ready. Dengan mengabstraksi penyimpanan (S3/Azure Blob) dan cache (Redis), Anda dapat menskalakan instance komputasi secara horizontal (Kubernetes/App Service Plan) untuk menghadapi lonjakan lalu lintas apa pun.
Sajikan penayangan dokumen super cepat dengan implementasi Doconut yang dioptimalkan.