Maison > Java > javaDidacticiel > Pourquoi mon application Java ne peut-elle pas allouer 1 400 Mo sur cette machine Windows XP ?

Pourquoi mon application Java ne peut-elle pas allouer 1 400 Mo sur cette machine Windows XP ?

Patricia Arquette
Libérer: 2024-12-03 04:00:10
original
807 Les gens l'ont consulté

Why Can't My Java Application Allocate 1400MB on This Windows XP Machine?

Résolution de l'écart d'allocation maximale de mémoire de Java sous Windows XP

À la différence du comportement précédent, vous rencontrez une erreur lors de l'allocation de 1 400 Mo de mémoire pour Java SE sur une nouvelle machine Windows XP. Bien que vous ayez réussi à exploiter la même configuration sur un autre appareil Windows XP, votre tentative d'allocation échoue, vous permettant de réserver seulement 1 200 Mo sur le nouveau système. Cet article examine les raisons possibles de cet écart.

Le rôle de la mémoire virtuelle et la fragilité de l'espace d'adressage

Windows implémente la gestion de la mémoire virtuelle, permettant à la JVM d'utiliser la mémoire de manière fragmentée au sein de son espace d’adressage. Par conséquent, la présence d’autres programmes actifs sur le système ne devrait pas avoir d’impact direct sur la taille du tas qui vous est attribué. Cependant, les DLL chargées dans votre espace d'adressage peuvent créer des problèmes.

Identification des coupables de la fragmentation de l'espace d'adressage

Les optimisations dans Windows minimisent la relocalisation des DLL lors de la liaison, augmentant ainsi la probabilité d'une adresse problème de fragmentation de l’espace. Certains programmes, tels que les logiciels de sécurité, les logiciels CBT, les logiciels espions et les logiciels malveillants, peuvent réduire davantage l'espace d'adressage contigu disponible.

Causes possibles de variance entre les machines

Différences dans les correctifs de sécurité, les versions d'exécution C, les pilotes de périphériques et d'autres composants du noyau peuvent entraîner des variations dans l'espace d'adressage disponible entre deux machines.

Résoudre la fragmentation de l'espace d'adressage

Bien que cela puisse impliquer un processus laborieux, vous pouvez tenter d'ajuster manuellement les liaisons de DLL dans votre processus JVM et de rebaser vos DLL. dans un espace d’adressage plus compact. Cette approche nécessite un examen minutieux des liaisons DLL.

Solution alternative : adopter une architecture 64 bits

Vous pouvez également atténuer ce problème en passant à une architecture 64 bits. version bits de Windows et une JVM 64 bits. Même si cela consommerait plus de RAM, vous gagneriez beaucoup plus d'espace d'adressage virtuel contigu, vous permettant d'allouer facilement 2 Go de manière contiguë.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal