8
votes

Consommation de mémoire de test d'un programme Java avec Eclipse

Y a-t-il un plugin dans Eclipse que je pourrais utiliser pour tester la quantité de mémoire que mon programme Just Exécutez?

Je pense qu'il peut y avoir un bouton du plugin après avoir exécuté le programme, je pouvais cliquer dessus et cela me montre un graphique de la consommation de mémoire maximale de mon programme tout à l'heure.


0 commentaires

3 Réponses :


9
votes

Personnellement, j'aime Visualvm ( Tutoriel ), inclus avec les dernières versions JDK.


2 commentaires

J'ai joint le lanceur par défaut avec Visualvm, tout fonctionne bien, mais si je lance un code Java, dans la partie locale de visualvim apparaît une application inconnue et lorsque le code sort, l'application inconnue disparaît. En outre, comment puis-je conserver les résultats profilés du programme qui s'est passé dans le passé?


Essayez le Snapshots .



3
votes

Je suis d'accord avec M. Personne que Visualvm est agréable. Le analyseur de mémoire Eclipse a également de belles caractéristiques.


0 commentaires

1
votes

Le total de la mémoire totale utilisée / libre em> strong> d'un programme peut être obtenu dans le programme via java.lang.runtime.getruntime () code>;

Le temps d'exécution comporte plusieurs méthodes liées à la mémoire. L'exemple de codage suivant illustre son utilisation. P>

import java.util.ArrayList;
import java.util.List;

public class PerformanceTest {
  private static final long MEGABYTE = 1024L * 1024L;

  public static long bytesToMegabytes(long bytes) {
    return bytes / MEGABYTE;
  }

  public static void main(String[] args) {
    // I assume you will know how to create an object Person yourself...
    List<Person> list = new ArrayList<Person>();
    for (int i = 0; i <= 100000; i++) {
      list.add(new Person("Jim", "Knopf"));
    }
    // Get the Java runtime
    Runtime runtime = Runtime.getRuntime();
    // Run the garbage collector
    runtime.gc();
    // Calculate the used memory
    long memory = runtime.totalMemory() - runtime.freeMemory();
    System.out.println("Used memory is bytes: " + memory);
    System.out.println("Used memory is megabytes: "
        + bytesToMegabytes(memory));
  }
} 


0 commentaires