English 中文(简体)
• 计算 j阵记忆使用量
原标题:how calculate java array memory usage
  • 时间:2010-06-04 08:37:24
  •  标签:
  • java
  • arrays

如果:

int c[] = new int[10];

以及

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

以及 in generally

a n*m*>。

我如何计算实际记忆使用量,同时考虑到参考变量?

最佳回答

如果你想得到准确的回答,你可以 t。 这一版解释更多。

Bragaadeesh和Bakkal的答案是,他们忽视了间接费用。 每个阵列还储存着诸如其数量、多长时间和一些垃圾收集器用途等物品。

简单估计,应采用其他答复中的计算方法,并增加100-200 by。

问题回答

我知道我很晚才知道,但真的很难计算记忆的足迹。

让我举第一个例子:int c[] = 新的[N];

根据64轨道记忆模式,只有4个字塔,因此所有要素的大小为4*N。 除此以外, Java有24个 by阵列间接费用,实际阵列物体还有8个 by。 因此,总共有32+4

2个层面阵列:int a [] = new int[N][M];

基本相同的情况是,第一阵列中的每一部分是另一阵列的M,因此,我们不是4个,而是32+4 * M,因此,总的规模是32+(32+4 * M) * N。

诚然,D层面的普遍化相当复杂,但大家有这种想法。

页: 1

http://www.javalobby.org/java/forums/t52787.html

int[ ]/code>或int[][>不是原始数据类型。 这是 Java的一个目标。 而用目标来计算规模不能直截了当。

我知道这是一个老问题,但我有同样的问题,本线提供的信息无助于我。 给我提供信息的来文方:。 https://www.javamex.com/tutorials/memory/array_memory_usage.shtml

我的情况就是这样:我有一大批人。

int a[][] = new int[m][n];

在“大概”事实上令人误解的地方:大米(3^18 = 387420489),但只有小(4)。 我忘了我不理解的问题,因为m* n * 4 = 6198727824(~6GB),而我有16GB of RAM(12允许使用Xmx12G)。 我刚才给我的答复是:

这10个行各有自己的12个逐字标头,4个*10=40个按批量实际生长的斜体,4个则通过dding,使该行的总数达到8个。

这里,我的双向阵列的记忆大大偏离了4米* n:在这里,由于小(4),每一行的面积实际上与4个*n不同;如果适用链接中给出的公式(即使大致如此),则每行各有12个(头盔)+4个(4个)+4个(4个)+4个(禁止8个 by子的多个)=32个,这是我预计的两倍,并解释说,我记忆已经过。

原始类型:基数类型和比特大小

  • boolean 1
  • byte 1
  • char 1
  • int 4
  • float 4
  • long 8
  • double 8
  • Interger 24 (16 for Class instance + 4 for int + 4 for memory alignment)

int a[M]: 24+4M

(16) + 4级,用于储蓄阵列面积+4用于记忆调和)+(M级为两倍,我们需要4

int a[M][N]: (24+4M) + M*(24+4N) = 24+28M+4MN ~~4MN

将[M][N]作为双阵数加一阵列的M尺寸处理,以便参照所有M尺寸阵列起点。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...