Maison >développement back-end >C++ >Pourquoi mon application .NET 64 bits génère-t-elle une exception OutOfMemoryException malgré 16 Go de RAM ?
OutOfMemoryException dans .NET : utilisation de la mémoire dépassant 1,3 Go sur une machine 64 bits
Malgré l'installation de 16 Go de RAM sur un ordinateur 64 bits , une application rencontre une exception OutOfMemory après avoir consommé environ 1,3 Go de mémoire. Ce problème persiste malgré l'absence d'objet unique dépassant 2 Go.
La cause réside dans l'architecture cible de la compilation. Par défaut, les applications .NET sont compilées pour une architecture 32 bits, ce qui impose une limite de 2 Go d'utilisation de la mémoire par objet. Même sur une machine 64 bits, la compilation pour 32 bits limite dans la même mesure l'utilisation de la mémoire.
Solution :
Pour résoudre le problème, recompilez le ciblage de l'application. Architecture 64 bits. Cela permettra à l'application d'utiliser la totalité des 16 Go de RAM disponibles sur le système. Après la recompilation, le binaire s'exécutera exclusivement sur les machines 64 bits.
De plus, il est crucial de noter que l'exception OutOfMemoryException peut également se produire si une seule collection dans le CLR (par exemple, List
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!