Heim >Java >javaLernprogramm >Warum kann meine Java-Anwendung auf diesem Windows XP-Computer keine 1400 MB zuweisen?
Behebung der Diskrepanz bei der maximalen Speicherzuweisung von Java unter Windows XP
Abweichend vom vorherigen Verhalten tritt bei der Zuweisung von 1400 Megabyte Speicher ein Fehler auf für Java SE auf einem neuen Windows XP-Rechner. Trotz erfolgreicher Nutzung derselben Konfiguration auf einem anderen Windows XP-Gerät schlägt Ihr Zuweisungsversuch fehl, sodass Sie auf dem neuen System nur 1200 Megabyte reservieren können. Dieser Artikel befasst sich mit den möglichen Gründen für diese Diskrepanz.
Die Rolle des virtuellen Speichers und der Fragilität des Adressraums
Windows implementiert die Verwaltung des virtuellen Speichers, sodass die JVM Speicher nutzen kann fragmentiert innerhalb seines Adressraums. Daher sollte die Anwesenheit anderer aktiver Programme auf dem System keinen direkten Einfluss auf die Größe des Ihnen zugewiesenen Heaps haben. Allerdings können in Ihren Adressraum geladene DLLs zu Herausforderungen führen.
Identifizieren der Schuldigen der Adressraumfragmentierung
Optimierungen in Windows minimieren die DLL-Verlagerung während der Verknüpfung und erhöhen so die Wahrscheinlichkeit einer Adresse Problem der Raumfragmentierung. Bestimmte Programme wie Sicherheitssoftware, CBT-Software, Spyware und Malware können den verfügbaren zusammenhängenden Adressraum weiter reduzieren.
Mögliche Ursachen für Abweichungen zwischen Maschinen
Unterschiede in Sicherheitspatches, C-Laufzeitversionen, Gerätetreibern und anderen Kernelkomponenten können zu Abweichungen im verfügbaren Adressraum zwischen zwei führen Maschinen.
Behebung der Adressraumfragmentierung
Auch wenn dies ein mühsamer Prozess sein kann, können Sie versuchen, die DLL-Bindungen in Ihrem JVM-Prozess manuell anzupassen und Ihre DLLs neu zu basieren in einen kompakteren Adressraum. Dieser Ansatz erfordert eine sorgfältige Prüfung der DLL-Bindungen.
Alternative Lösung: Umfassen Sie die 64-Bit-Architektur
Alternativ können Sie dieses Problem durch den Wechsel zu einer 64-Bit-Architektur beheben. Bit-Version von Windows und einer 64-Bit-JVM. Obwohl es mehr RAM verbrauchen würde, würden Sie deutlich mehr zusammenhängenden virtuellen Adressraum gewinnen, sodass Sie problemlos 2 GB zusammenhängend zuweisen können.
Das obige ist der detaillierte Inhalt vonWarum kann meine Java-Anwendung auf diesem Windows XP-Computer keine 1400 MB zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!