2011-05-03 15 views
7

¿Existe un plugin en eclipse que pueda usar para probar a quién le costó la memoria el programa que acabo de ejecutar? Estoy pensando que puede haber un botón del complemento, después de ejecutar el programa, podría hacer clic en él, y me muestra un gráfico del tipo de consumo de memoria peek de mi programa en este momento. Graciasconsumo de memoria de prueba de un programa Java con eclipse

Respuesta

8

Personalmente me gusta VisualVM (tutorial), incluido con las últimas versiones de JDK.

+0

Os adjunto el lanzador por defecto con VisualVM, todo funciona bien, pero si hago un código de Java, en el 'parte de local' VisualVIM aparece una aplicación desconocida, y cuando las salidas de código, la aplicación desconocida también desaparece, ¿cómo puedo conservar los resultados perfilados del programa que se ejecutó en el pasado? – user685275

+0

Pruebe las [Instantáneas] (http://download.oracle.com/javase/6/docs/technotes/guides/visualvm/snapshots.html). –

+0

Gracias por la ayuda – user685275

3

Estoy de acuerdo con el Sr. Nadie en que VisualVM es agradable. El Eclipse Memory Analyzer tiene algunas características agradables también.

2

La memoria total utilizada/libre de un programa se puede obtener en el programa a través de java.lang.Runtime.getRuntime();

El tiempo de ejecución tiene varios métodos que se relacionan con la memoria. El siguiente ejemplo de codificación demuestra su uso.

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 a 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)); 
    } 
} 
Cuestiones relacionadas