J'ai une application que j'ai créée pour copier des utilisateurs (10 000+) d'un domaine et créer l'utilisateur dans un autre domaine avec des propriétés personnalisées. L'application semble fonctionner correctement jusqu'à ce qu'elle atteigne 1,7 Go de mémoire, je sais qu'il y a une limite de 2 Go par processus sur les machines 32 bits mais je l'exécute sur une copie de Windows Server 2008 x64 avec 24 Go de RAM.Limites de mémoire
Mon application ne plante pas mais se termine avant (environ 3000 utilisateurs), peut-être la limitation de la mémoire n'est pas mon problème ici, mais c'était la première chose qui ressortait lorsque je comparais mon application à une application plus simple. utilisateurs en boucle.
J'ai mon projet défini sur "Any CPU" et il apparaît dans le gestionnaire de tâches sans le drapeau * 32.
Quelqu'un peut-il m'aider à comprendre ce qui se passe?
Merci
Corrigez-moi également si je me trompe, mais .NET runtime non seulement ne peut pas allouer plus de 2 Go par objet, il doit également insérer un objet dans un bloc de mémoire continu, donc parfois même 2 Go être possible mais je ne suis pas totalement sûr à ce sujet. Jon Skeet pourrait nous éclairer :) –
Vous avez raison. Vous aurez besoin d'un bloc de mémoire contigu, il est donc peu probable que vous obteniez près de 2 Go sur un système 32 bits. Il y a aussi des frais généraux d'allocation. Le plus grand octet que vous pouvez allouer, par exemple, est 2 147 483 591 octets. (Résultat expérimental.) –