
Optimisation du rendu de gros documents dans ASP.NET Core
La vitesse est une fonctionnalité
Lorsqu'un utilisateur clique sur « View Document », il s'attend à ce que le document se charge instantanément. Qu'il s'agisse d'un mémo de 3 pages ou d'un mémoire juridique de 5 000 pages, l'attente n'est pas une option. Doconut est conçu pour la vitesse, mais pour des charges de travail à l'échelle de l'entreprise, optimiser votre implémentation est essentiel.
1. Stratégies de mise en cache intelligentes
Rendre à plusieurs reprises la même page est un gaspillage de cycles CPU. L'interface de mise en cache intégrée de Doconut vous permet de stocker efficacement les images de pages rendues.
- Mise en cache sur disque : Idéal pour les configurations à serveur unique avec un stockage NVMe rapide. Les pages rendues sont enregistrées dans
App_Dataet servies statiquement lors des requêtes suivantes. - Mise en cache distribuée (Redis) : Essentiel pour les fermes équilibrées en charge. Si le serveur A rend la page 5, le serveur B doit pouvoir la servir sans la re‑rendre. Doconut prend en charge les implémentations personnalisées de
ICachepour se connecter directement à Redis ou Memcached.
2. Chargement paresseux et virtualisation
Ne jamais envoyer le document entier d'un coup. Doconut utilise une approche de défilement virtualisé.
- Seules les pages visibles (plus un petit tampon) sont demandées au serveur.
- Au fur et à mesure que l'utilisateur fait défiler, de nouvelles pages sont récupérées à la demande.
Cela garantit que l'ouverture d'un PDF de 100 Mo prend à peu près le même temps de chargement initial qu'un fichier de 1 Mo.
3. Concurrence et thread
Dans ASP.NET Core, la gestion des ressources est cruciale.
- Traitement parallèle : Doconut peut exploiter les CPU multi-cœurs pour pré‑rendre les pages adjacentes pendant que l'utilisateur lit la page actuelle.
- Gestion des jetons : Fermez les gestionnaires de document (
objDoc.Close()) immédiatement lorsqu'ils ne sont plus nécessaires (ou utilisez des blocsusing) pour maintenir une empreinte mémoire faible.
4. Optimisations spécifiques aux formats
- PDF : Assurez-vous que le « Fast Web View » (linéarisation) n'est pas strictement nécessaire pour Doconut (puisque nous rendons côté serveur), mais des structures internes optimisées aident.
- Images : Pour d'énormes TIFF/JPEG, activer le rendu en tuiles de Doconut peut éviter les exceptions OutOfMemory en traitant l'image par morceaux.
Mise à l'échelle
Pour les applications desservant des milliers d'utilisateurs simultanés, Doconut est prêt pour le sans état. En abstraisant le stockage (S3/Azure Blob) et le cache (Redis), vous pouvez mettre à l'échelle vos instances de calcul horizontalement (Kubernetes/Plan App Service) pour gérer tout pic de trafic.
Offrez une visualisation de documents ultra-rapide avec une implémentation Doconut optimisée.