Gardez à l'esprit que Windows a de gestion de mémoire virtuelle et de la JVM que les besoins de la mémoire qui est contiguë dans son espace d'adressage. Ainsi, d'autres programmes en cours d'exécution sur le système ne devrait pas nécessairement des répercussions sur votre taille de segment de mémoire. Ce qui va dans votre sens sont des DLL qui sont chargées dans votre espace d'adressage. Malheureusement, des optimisations de Windows, permettant de minimiser la réinstallation de DLL au cours reliant la rendre plus probable que vous aurez un fragmentée de l'espace d'adresse. Les choses qui sont susceptibles de couper dans votre espace d'adressage à part les trucs habituels incluent la sécurité des logiciels, CBT logiciel, les logiciels espions et autres formes de logiciels malveillants. Les causes probables de les variances sont différentes de correctifs de sécurité, C versions du moteur d'exécution, etc. Pilotes de périphérique et d'autre du noyau bits ont leur propre espace d'adressage (l'autre de 2 go à 4 go espace de 32 bits).
Vous pourriez essayer d'aller à travers votre DLL liaisons dans votre processus de JVM et essayer de rebase votre DLL dans le plus compact de l'espace d'adresse. Pas de plaisir, mais si vous êtes désespérés...
Alternativement, vous pouvez simplement passer à la version 64 bits de Windows et une JVM 64 bits. En dépit de ce que les autres ont suggéré, bien mâcher plus de mémoire vive, vous aurez beaucoup plus d'espace d'adressage virtuel contiguë, et de l'allocation de 2 GO de manière contiguë serait trivial.