Otimização da Renderização de Documentos de Grande Porte no ASP.NET Core
← Back to Blog2 min read

Otimização da Renderização de Documentos de Grande Porte no ASP.NET Core

Velocidade é um Recurso

Quando um usuário clica em "Visualizar Documento", ele espera que carregue instantaneamente. Seja um memorando de 3 páginas ou um informe jurídico de 5.000 páginas, esperar não é uma opção. Doconut foi projetado para velocidade, mas para cargas de trabalho em escala empresarial, otimizar sua implementação é fundamental.

1. Estratégias Inteligentes de Cache

Renderizar repetidamente a mesma página é um desperdício de ciclos de CPU. A interface de cache embutida do Doconut permite armazenar imagens de páginas renderizadas de forma eficiente.

  • Cache em Disco: Excelente para configurações de servidor único com armazenamento NVMe rápido. As páginas renderizadas são salvas em App_Data e servidas estaticamente em solicitações subsequentes.
  • Cache Distribuído (Redis): Essencial para fazendas balanceadas por carga. Se o Servidor A renderiza a Página 5, o Servidor B deve ser capaz de servi‑la sem re‑renderizar. Doconut suporta implementações personalizadas de ICache para conectar diretamente ao Redis ou Memcached.

2. Carregamento Lento e Virtualização

Nunca envie o documento inteiro de uma vez. Doconut usa uma abordagem de rolagem virtualizada.

  • Apenas as páginas visíveis (mais um pequeno buffer) são solicitadas ao servidor.
  • À medida que o usuário rola, novas páginas são buscadas sob demanda.

Isso garante que abrir um PDF de 100 MB leve aproximadamente o mesmo tempo de carregamento inicial que um arquivo de 1 MB.

3. Concorrência e Threading

No ASP.NET Core, o gerenciamento de recursos é crucial.

  • Processamento Paralelo: Doconut pode utilizar CPUs multi‑core para pré‑renderizar páginas adjacentes enquanto o usuário lê a página atual.
  • Gerenciamento de Tokens: Feche os manipuladores de documento (objDoc.Close()) imediatamente quando não forem mais necessários (ou use blocos using) para manter a pegada de memória baixa.

4. Otimizações Específicas por Formato

  • PDFs: Certifique-se de que "Fast Web View" (Linearização) não é estritamente necessário para Doconut (já que renderizamos no servidor), mas estruturas internas otimizadas ajudam.
  • Imagens: Para TIFFs/JPEGs enormes, habilitar o renderização em ladrilhos do Doconut pode prevenir exceções OutOfMemory ao processar a imagem em blocos.

Escalando

Para aplicações que atendem milhares de usuários simultâneos, Doconut está pronto para ser sem estado. Ao abstrair o armazenamento (S3/Azure Blob) e o cache (Redis), você pode escalar suas instâncias de computação horizontalmente (Kubernetes/App Service Plan) para lidar com qualquer pico de tráfego.

Entregue visualização de documentos ultra‑rápida com uma implementação ajustada do Doconut.

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