Dúvida EP1

Re: Dúvida EP1

por José Coelho de Pina -
Número de respostas: 0

Olá Artur,

Obrigado por compartilhar a dúvida!

Qual seria a maneira ideal de garantir que a minhas classes Deque e RandomizedQueue estão seguindo essa exigência?

Acho que seria bem legal primeiro calcular na mão, como indicado em Memory usage do algs4, o número de bytes usados por cada objeto.

Em seguida, seria muito bacana testar esse número na prática. No unit test (main()) do objeto vocês poderiam calcular e imprimir o número de bytes da fórmula que vocês obtiveram na mão e ver o que o Java tem a dizer a respeito. Para saber o que o Java tem a dizer a respeito vocês poderiam usar a biblioteca classmexer para medir a memória usada por cada objeto.

Seria legal se quem fizesse esse unit test compartilhasse com os colegas aqui no forúm.


Classmexer is a simple Java instrumentation agent that provides some convenience calls for measuring the memory usage of Java objects from within an application. It currently provides the following static calls from the MemoryUtil class, inside the com.javamex.classmexer package:

  public static long memoryUsageOf(Object obj)
  public static long deepMemoryUsageOf(Object obj)
  public static long deepMemoryUsageOf(Object obj,
                                       VisibilityFilter referenceFilter)
  public static long deepMemoryUsageOfAll(Collection<? extends Object> objs)
  public static long deepMemoryUsageOfAll(Collection<? extends Object> objs,
                                         VisibilityFilter referenceFilter)