как вычисляют использование матрицы элементов памяти Java

Если я имею:

int c[] = new int[10];

и

int a[][] = new int[2][3];

и в обычно

n*m*..*j массив

как я могу вычислить использование реальной памяти, рассматривающее также ссылочные переменные?

14
задан xdevel2000 4 June 2010 в 08:37
поделиться

3 ответа

Если вы хотите получить точный ответ, вы не можете. По крайней мере, не в каком-то простом смысле. Эта тема объясняет больше.

Проблема с ответами Брагадиша и Баккала в том, что они игнорируют накладные расходы. Каждый массив также хранит такие вещи, как количество измерений, которые он имеет, как долго он и некоторые вещи, которые использует сборщик мусора.

Для простой оценки вы должны быть в порядке, используя вычисления из других ответов и добавляя 100-200 байт.

16
ответ дан 1 December 2019 в 09:01
поделиться

int [] или int [] [] не является примитивным типом данных. Это объект в Java. А с Object размер не может быть рассчитан сразу.

1
ответ дан 1 December 2019 в 09:01
поделиться

вы, вероятно, получите лучшее приближение из этого: http://java.sun.com/javase/6/docs/api/java/lang/instrument/Instrumentation. html # getObjectSize (java.lang.Object)

Эта статья и эта исчерпывающая демонстрируют / подробно описывают этот подход

1
ответ дан 1 December 2019 в 09:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: