Sempre Use Arquitetura 64 Bits com IronOCR
IronOCR executa trabalho intensivo de memória nos bastidores, então uma construção 32 bits (x86) atinge o limite de memória ~2GB e começa a falhar em documentos grandes ou de alto volume. Direcionar para 64 bits (x64) é a correção.
Um processo de 32 bits é limitado a cerca de 2GB de memória utilizável, independentemente do quanto de RAM a máquina possua. Dentro desse limite, o trabalho de OCR frequentemente se manifesta como:
System.OutOfMemoryException
Outros sintomas do mesmo limite incluem deadlocks durante a execução do motor OCR, escassez de recursos no pré-processamento de imagem, falhas ou exceções não tratadas e resultados do OCR que expiram ou falham silenciosamente.
A pressão vem das operações que o IronOCR executa por documento: renderização de imagem em alta resolução, rasterização temporária, reconhecimento óptico de caracteres e extração profunda de texto usando um modelo de aprendizado de máquina (usado pelos métodos AdvancedScan e saída SearchablePDF). Cada um desses pode exigir centenas de MB por documento, e PDFs de múltiplas páginas, TIFFs de múltiplas páginas e imagens de 300+ DPI empurram isso ainda mais alto.
Solução
Opção 1: Defina o alvo da plataforma no Visual Studio
Altere o projeto para x64 através das configurações de construção:
- Clique com o botão direito no seu projeto e abra Propriedades.
- Abra a aba Compilação.
- Defina Plataforma alvo como
x64. - Deixe Preferir 32-bit desmarcado.
Opção 2: Defina o alvo do CLI ou no .csproj
Publique contra um runtime de 64 bits para impor a arquitetura no momento da construção:
dotnet publish -c Release -r win-x64
dotnet publish -c Release -r win-x64
Ou fixe o alvo diretamente no seu .csproj:
<PropertyGroup>
<PlatformTarget>x64</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<PlatformTarget>x64</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
A linha <Prefer32Bit>false</Prefer32Bit> importa quando o projeto está AnyCPU: com ela habilitada, o aplicativo ainda inicia como um processo de 32-bits e herda o mesmo limite.
Quando Suspeitar da Arquitetura
Verifique primeiro a arquitetura se você perceber que trabalhos OCR estão parando ou falhando inesperadamente, exceções de falta de memória intermitentes, ou degradação de desempenho em documentos de alto volume. Se você estiver operando em x86, mude para x64 antes de investigar qualquer outra coisa.
Mantenha alguns hábitos na produção:
- Alvo x64 para produção: é a única configuração suportada para cargas de trabalho de OCR pesadas.
- Desenvolva em x64: testar em x64 espelha o comportamento real de memória e revela problemas cedo.
- Construa imagens Docker de 64 bits: certifique-se de que a imagem base seja
linux/amd64.
Observe que o trabalho concorrente de OCR eleva a memória rapidamente. Mesmo com documentos pequenos, operações multithreaded ou assíncronas podem escalar rapidamente.
Se Você Não Pode Mudar a Arquitetura
Quando x64 não é uma opção, divida documentos grandes em partes menores e processe em uma resolução mais baixa. Espere uma troca de desempenho e precisão. Suporte estável para projetos de 32 bits está atualmente em investigação.

