Comment réduire la JVM utilisation de la mémoire virtuelle?

J'ai un programme Java pour fonctionner sur Solaris 10 X86 avec 2 go de mémoire physique et de 2 go de swap.

Le programme fonctionne très bien sous Linux 64 bits, il ne consomme qu'environ 450 MO de mémoire.

Cependant lorsqu'il s'exécute dans Solaris, il signale toujours OutOfMemoryError, et j'ai remarqué que juste avant l'erreur se produit, il a essayé de l'utiliser > 4 go de mémoire virtuelle, qui n'est certainement pas possible sur système 32 bits.

Alors pourquoi ne JVM essaie d'utiliser beaucoup de mémoire virtuelle? Est-il un moyen de dire à la JVM de ne pas utiliser beaucoup de mémoire virtuelle?

Merci.

Edit:

Merci pour tous les avis! Ici est le message d'erreur:

#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 32756 bytes for ChunkPool::allocate
# Possible reasons:
#   The system is out of physical RAM or swap space
#   In 32 bit mode, the process size limit was hit
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Use 64 bit Java on a 64 bit OS
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
#  Out of Memory Error (allocation.cpp:211), pid=1052, tid=16
#
# JRE version: 6.0_26-b03
# Java VM: Java HotSpot(TM) Server VM (20.1-b02 mixed mode solaris-x86 )

---------------  T H R E A D  ---------------

Current thread (0x081a3400):  JavaThread "C2 CompilerThread1" daemon
  • Que voulez-vous dire? Le bytecode Java est indépendante du système et il est interpretted par la JVM...
  • Ne m'écoutez pas... je suis clairement de dire des sottises.
  • Veuillez coller le message d'erreur complet. Il contient généralement plus que juste le nom de l'exception...
InformationsquelleAutor | 2012-08-19