Lista em memorica (ocupação)

2 respostas
C

Olá pessoal!

sou novo no mundo Java! porem estou com uma duvida!

tem como saber o tamanho de uma lista em memoria??

ex: quero saber quanto uma lista minha esta sendo ocupada na memoria!

utilizei o .size porem só me retorna a quantidade de elementos.

vlw pessoal…

2 Respostas

jaboot

Cara, nunca fiz isso. Mas encontrei uma discussão boa no StackOverflow:

ribclauport

Seu Creyson, "memorica".. heheheh

Na revista Mundo Java, acho que nem existe mais de abril de 2009, tem uma matéria excelente a respeito de memória, aliás mostrando young, perm, survivor, tenured, heap, non-heap.....

fiz aqui um pedaço de código copiado da mesma:

import static java.lang.System.out;

import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryUsage;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;


public class TesteMemoria {
	public static int KBYTES = 1024;
	public static String FORMAT = "(%.2fkb)";
	public static void main(String[] args) {
		MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
		out.println("Memoria heap");
		out.println();
		MemoryUsage heapMemory = memoryBean.getHeapMemoryUsage();
		out.println("Usado: "+heapMemory.getUsed()/KBYTES+String.format(Locale.US, FORMAT,(double)heapMemory.getUsed()/KBYTES));
		List<String> lista = new ArrayList<String>();
		for(int i = 0; i < 2000; i++){
			lista.add(new String("oi"));
		}
		MemoryUsage heapMemoryNovo = memoryBean.getHeapMemoryUsage();
		out.println("Usado: "+heapMemoryNovo.getUsed()/KBYTES+String.format(Locale.US, FORMAT,(double)heapMemoryNovo.getUsed()/KBYTES));
	}
}

Saida:

Memoria heap

Usado: 281(281.30kb)
Usado: 378(378.59kb)

Lógico que entre o for e a instancia de outro objeto ... , pode haver outras threads... e Deus sabe lá o que acontecendo, mais da para ter uma idéia...

Espero ter ajudado.

Criado 22 de março de 2012
Ultima resposta 22 de mar. de 2012
Respostas 2
Participantes 3