
Optimierung der großen Dokumentdarstellung in ASP.NET Core
Geschwindigkeit ist ein Merkmal
Wenn ein Benutzer auf "View Document" klickt, erwartet er, dass es sofort geladen wird. Egal, ob es sich um ein 3‑seitiges Memo oder ein 5.000‑seitiges Rechtsdokument handelt, Warten ist keine Option. Doconut ist auf Geschwindigkeit ausgelegt, aber bei Unternehmens‑Workloads ist die Optimierung Ihrer Implementierung entscheidend.
1. Intelligente Caching-Strategien
Das wiederholte Rendern derselben Seite ist eine Verschwendung von CPU‑Zyklen. Die integrierte Caching‑Schnittstelle von Doconut ermöglicht es Ihnen, gerenderte Seitenbilder effizient zu speichern.
- Disk Caching: Ideal für Single‑Server‑Setups mit schnellem NVMe‑Speicher. Gerenderte Seiten werden in
App_Datagespeichert und bei nachfolgenden Anfragen statisch ausgeliefert. - Distributed Caching (Redis): Unverzichtbar für load‑balanced Farmen. Wenn Server A Seite 5 rendert, sollte Server B sie ohne erneutes Rendern ausliefern können. Doconut unterstützt benutzerdefinierte
ICache‑Implementierungen, um direkt an Redis oder Memcached anzuschließen.
2. Lazy Loading & Virtualisierung
Senden Sie niemals das gesamte Dokument auf einmal. Doconut verwendet einen virtualisierten Bildlauf Ansatz.
- Nur die sichtbaren Seiten (plus ein kleiner Puffer) werden vom Server angefordert.
- Während der Benutzer scrollt, werden neue Seiten bei Bedarf abgerufen.
Dies stellt sicher, dass das Öffnen einer 100‑MB‑PDF etwa die gleiche Anfangsladezeit wie eine 1‑MB‑Datei benötigt.
3. Parallelität & Threading
In ASP.NET Core ist das Ressourcenmanagement entscheidend.
- Parallel Processing: Doconut kann Mehrkern‑CPUs nutzen, um angrenzende Seiten vorzurendern, während der Benutzer die aktuelle liest.
- Token Management: Schließen Sie Dokument‑Handles (
objDoc.Close()) sofort, wenn sie nicht mehr benötigt werden (oder verwenden Sieusing‑Blöcke), um den Speicherverbrauch gering zu halten.
4. Format‑spezifische Optimierungen
- PDFs: Stellen Sie sicher, dass „Fast Web View“ (Linearisation) nicht zwingend für Doconut erforderlich ist (da wir auf dem Server rendern), aber optimierte interne Strukturen helfen.
- Images: Für riesige TIFFs/JPEGs kann das Aktivieren von Doconut's Kachel‑Rendering OutOfMemory‑Ausnahmen verhindern, indem das Bild in Blöcken verarbeitet wird.
Skalierung
Für Anwendungen, die tausende gleichzeitige Benutzer bedienen, ist Doconut stateless‑fähig. Durch Abstrahieren des Speichers (S3/Azure Blob) und des Caches (Redis) können Sie Ihre Compute‑Instanzen horizontal skalieren (Kubernetes/App Service Plan), um jede Verkehrsspitze zu bewältigen.
Liefern Sie Blitzschnelles Dokument anzeigen mit einer abgestimmten Doconut‑Implementierung.