Optimera rendering av stora dokument i ASP.NET Core
← Back to Blog2 min read

Optimera rendering av stora dokument i ASP.NET Core

Hastighet är en funktion

När en användare klickar på "View Document" förväntar de sig att den laddas omedelbart. Oavsett om det är ett 3‑sidigt memorandum eller ett 5 000‑sidigt juridiskt memorandum är väntetid inget alternativ. Doconut är konstruerad för hastighet, men för arbetsbelastningar i företagsstorlek är optimering av din implementation nyckeln.

1. Smarta cache-strategier

Att rendera samma sida upprepade gånger är slöseri med CPU‑cykler. Doconut's inbyggda cache‑gränssnitt låter dig lagra renderade sidbilder effektivt.

  • Disk Caching: Perfekt för enkla server‑inställningar med snabb NVMe‑lagring. Renderade sidor sparas i App_Data och levereras statiskt vid efterföljande förfrågningar.
  • Distributed Caching (Redis): Avgörande för lastbalanserade kluster. Om Server A renderar Sida 5, bör Server B kunna leverera den utan att rendera om. Doconut stöder anpassade ICache‑implementationer för att ansluta direkt till Redis eller Memcached.

2. Lazy Loading & virtualisering

Skicka aldrig hela dokumentet på en gång. Doconut använder en virtualiserad scrollning‑metod.

  • Endast de synliga sidorna (plus en liten buffert) begärs från servern.
  • När användaren scrollar hämtas nya sidor vid behov.

Detta säkerställer att öppning av en 100 MB PDF tar ungefär samma initiala laddningstid som en 1 MB‑fil.

3. Samtidighet & trådning

I ASP.NET Core är resurshantering avgörande.

  • Parallel Processing: Doconut kan utnyttja flerkärniga CPU:er för att förrendera intilliggande sidor medan användaren läser den aktuella.
  • Token Management: Stäng dokumenthandtag (objDoc.Close()) omedelbart när de inte längre behövs (eller använd using‑block) för att hålla minnesavtrycket lågt.

4. Format‑specifika optimeringar

  • PDFs: Säkerställ att "Fast Web View" (Linearization) inte är strikt nödvändigt för Doconut (eftersom vi renderar på server), men optimerade interna strukturer hjälper.
  • Images: För enorma TIFF/JPEG‑filer kan aktivering av Doconut's tiled rendering förhindra OutOfMemory‑undantag genom att bearbeta bilden i bitar.

Skalning

För applikationer som betjänar tusentals samtidiga användare är Doconut stateless-ready. Genom att abstrahera lagringen (S3/Azure Blob) och cachen (Redis) kan du skala dina beräkningsinstanser horisontellt (Kubernetes/App Service Plan) för att hantera alla trafikspikar.

Leverera blixtsnabb dokumentvisning med en finjusterad Doconut‑implementation.

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