Gerenciando tamanho da sessão

2 respostas
F

Boa tarde pessoal,
Estou trabalhando com uma aplicação web com wervidor websphere.
Suspeitamos que existe um problema com o tamanho da sessão de cada usuário (pode estar chegando a 4MB).
Gostaria de uma ajuda para saber como posso controlar o tamanho do objeto da sessão. Não preciso de nenhuma outra informação. Apenas o tamanho da mesma.
Exemplo: vou testar a aplicação desde o login até uma funcionalidade final e gostaria de saber o quanto de memória a sessão esta utilizando conforme a utilização.

Obrigado galera.

2 Respostas

R

Utilize isso:

package br.com.michaelnascimento.javaagentsample;

import java.lang.instrument.Instrumentation;
import java.util.Calendar;

public class ObjectSizeCalculator {
   private static Instrumentation instrumentation;

   public static void premain(String agentArgs, Instrumentation inst) {
      instrumentation = inst;
   }

   private static long sizeOf(Object o) {
      return instrumentation.getObjectSize(o);
   }

   public static void main(String[] args) {
      System.out.println("Size of Object: " + sizeOf(new Object()));
      System.out.println("Size of direct subclass: " + sizeOf(
            new ObjectSizeCalculator()));
      System.out.println("Size of String \"size\": " + sizeOf("size"));
      System.out.println("Size of Calendar: " + sizeOf(Calendar.getInstance()));   
   }
}

Fonte:
http://weblogs.java.net/blog/mister__m/archive/2007/01/measuring_the_s.html

F

obrigado rafael…
mas criei essa classe porém não consegui implementa-la na minha aplicação…
como o método sizeOf é static, tenti utilizar da seguinte forma:

System.out.println(ObjectSizeFetcher.sizeOf(session));

mas quando executo gera um Nullpointerexception na variavel “instrumentation” dentro do método sizeOf.

Poderiam me ajudar?

obrigado pela atenção

Criado 21 de novembro de 2011
Ultima resposta 23 de nov. de 2011
Respostas 2
Participantes 2