Utilisez toujours l'architecture 64 bits avec IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR effectue un travail gourmand en mémoire sous le capot, donc une construction 32 bits (x86) atteint la limite de mémoire de ~2 Go et commence à échouer sur des documents volumineux ou à haut débit. Cibler le 64 bits (x64) est la solution.

Un processus 32 bits est limité à environ 2 Go de mémoire utilisable, peu importe la quantité de RAM dont dispose la machine. Sous ce seuil, le travail OCR apparaît communément comme :

System.OutOfMemoryException

D'autres symptômes du même seuil incluent des blocages pendant l'exécution du moteur OCR, une pénurie de ressources lors du prétraitement de l'image, des plantages ou des exceptions non gérées, et des résultats OCR qui expirent ou échouent silencieusement.

La pression provient des opérations qu'IronOCR effectue par document : rendu d'image haute résolution, rasterisation temporaire, reconnaissance optique de caractères et extraction profonde de texte utilisant un modèle d'apprentissage automatique (utilisé par les méthodes AdvancedScan et la sortie SearchablePDF). Chacune de ces opérations peut exiger des centaines de Mo par document, et les PDFs multi-pages, TIFFs multi-pages, et images 300+ DPI poussent cela plus haut.

Veuillez noterIronOCR appelle également des bibliothèques natives pour l'OCR, le rendu d'images et la rasterisation PDF. Celles-ci allouent de la mémoire non gérée que le ramasse-miettes .NET ne peut voir, ce qui ajoute encore plus de pression dans un processus 32 bits.

Solution

Option 1 : Définir la cible de plateforme dans Visual Studio

Passez le projet à x64 à travers les paramètres de construction :

  1. Faites un clic droit sur votre projet et ouvrez Propriétés.
  2. Ouvrez l'onglet Build.
  3. Réglez Cible de plateforme sur x64.
  4. Laissez Préférer 32 bits décoché.

Option 2 : Définir la cible à partir du CLI ou du .csproj

Publiez contre un runtime 64 bits pour imposer l'architecture au moment de la construction :

dotnet publish -c Release -r win-x64
dotnet publish -c Release -r win-x64
SHELL

Ou épinglez directement la cible dans votre .csproj :

<PropertyGroup>
  <PlatformTarget>x64</PlatformTarget>
  <Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
  <PlatformTarget>x64</PlatformTarget>
  <Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
XML

La ligne <Prefer32Bit>false</Prefer32Bit> est importante lorsque le projet est AnyCPU : avec elle activée, l'application se lance toujours en tant que processus 32 bits et hérite de la même limite.

AvertissementÉvitez "AnytCPU" avec "Préférer 32 bits" activé.
Cela réintroduit silencieusement la limite de 2 Go même sur une machine 64 bits.) )}]

Quand soupçonner l'architecture

Vérifiez d'abord l'architecture si vous voyez des tâches OCR bloquer ou se bloquer de manière inattendue, des exceptions de mémoire insuffisante intermittentes ou une dégradation des performances sur des documents volumineux. Si vous utilisez x86, passez à x64 avant d'examiner quoi que ce soit d'autre.

Gardez quelques habitudes en prod :

  • Cible x64 pour la production : c'est la seule configuration supportée pour des charges de travail OCR lourdes.
  • Développez sur x64 : les tests sur x64 reflètent le comportement mémoire réel et identifient les problèmes tôt.
  • Construisez des images Docker 64 bits : assurez-vous que l'image de base est linux/amd64.

Notez que le travail OCR simultané augmente rapidement la mémoire. Même avec de petits documents, les opérations multithread ou asynchrones peuvent grimper rapidement.

Si vous ne pouvez pas changer d'architecture

Lorsque x64 n'est pas une option, divisez les gros documents en plus petits morceaux et traitez à une résolution plus basse. Attendez-vous à un compromis en termes de performance et de précision. Le support stable des projets 32 bits est actuellement en cours d'examen.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 6,136,090 | Version : 2026.7 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronOcr
lancez un échantillon regardez votre image se transformer en texte consultable.