2010-12-06 4 views
1

Je suis intéressé pour récupérer le processus Java du gestionnaire de tâches & effectuer GC en fonction de la mémoire ...Comment récupérer le processus Java et exécuter GC basé sur la mémoire de processus Java?

Pouvez-vous fournir des informations pour y parvenir

Merci & salutations Krishna

+2

Pourquoi voulez-vous faire cela? C'est à peu près ce que la JVM fait elle-même (et avec beaucoup plus d'informations détaillées que vous avez à disposition en dehors du processus). –

+0

Je cours une plus grande application dans Tomcat. Actuellement, je suis en train de surveiller la JVM en utilisant jconsole. Ma machine virtuelle a validé 3,7 Go, mais les utilisateurs sont plus nombreux, le système est structuré et j'ai besoin de redémarrer le Tomcat. – krishna

+0

"le système est structuré"? Que veux-tu dire par là? Il semble que vous ayez besoin de modifier la configuration de la mémoire de votre Tomcat. –

Répondre

1

Voici une description sur la façon d'obtenir la mémoire utilisée actuelle:

http://viralpatel.net/blogs/2009/05/getting-jvm-heap-size-used-memory-total-memory-using-java-runtime.html

Le Garbage Collector vous pouvez déclencher en appelant:

System.gc() 

voir: http://download.oracle.com/javase/1.4.2/docs/api/java/lang/System.html#gc%28%29 Pour une documentation

+0

Notez que pour le dernier point, vous pouvez simplement * suggérer * que le GC devrait être exécuté. Une stratégie de la JVM/GC est entièrement libre de l'interpréter: en particulier, ne rien faire est une implémentation légale. –

+0

Oui c'est vrai et aussi mentionné dans la documentation –

1

Pour autant que je comprends que vous souhaitez effectuer ces opérations sur le processus externe (retrieve the java process from the task manager).

Je vous suggère de vérifier JMX. C'est la manière "normale" de le faire à distance. Si JConsole le fait, vous pouvez l'implémenter vous-même.

Vous devez utiliser java.lang.management.GarbageCollectorMXBean

Questions connexes