Supposons que j'ai une application Java Swings, J'ai fixé le Heap minimum à 64MB et le Heap maximum à 2GB, Lorsque l'utilisateur démarre l'application, l'écran de connexion s'affiche. s'affichera, à ce moment l'application utilise 64MB, n'est-ce pas ? Depuis mon Windows 7, je peux voir que l'application java se voit allouer 64 Mo. dans le Memory Resource Monitor du système d'exploitation (en fait, c'est plus que 64 Mo car la JVM a besoin de mémoire pour ses tâches).
Ensuite, si l'utilisateur fait un travail très lourd, l'application utilise 2G. Puis l'utilisateur se déconnecte de l'application, l'écran de connexion s'affiche à nouveau (l'application n'est pas encore fermée). À ce moment-là, la mémoire réelle que l'application utilise 64MB (supposons qu'il s'agisse d'une application de gestion de la mémoire parfaite), mais avec le système d'exploitation, cette application utilise toujours 2G de RAM, je peux le voir sur le moniteur de ressources du système d'exploitation.
Je veux que mon application libère la mémoire pour le système d'exploitation lorsqu'elle n'a pas besoin d'utiliser une grande quantité de mémoire. Puis-je le faire au moment de l'exécution avec une application Java ?
Je veux dire lorsque mon application a besoin d'utiliser 64 Mo de RAM, alors le système d'exploitation ne lui donne que 64 Mo, quand elle a besoin de 2GB de ram, le système d'exploitation lui donne 2GB, ensuite, si elle a besoin de 64 Mo de RAM, le système d'exploitation lui donne à nouveau 64 Mo seulement, Je ne veux pas qu'il gaspille 2000MB - 64MB = 1936MB.
Je peux le faire ?
Merci,