相关疑难解决方法(0)

Java中对象的内存开销是多少?

重复:

Java中对象的内存消耗是多少?

假设在Intel或AMD机箱上的64位Linux上使用Java 1.6 JVM,创建一个简单的对象会使用多少内存开销(以字节为单位)?例如,二维数组中的每一行都是一个单独的对象.如果我的阵列很大,我将使用多少RAM?

java memory overhead

6
推荐指数
1
解决办法
2万
查看次数

变量声明时的Java内存使用情况?

关于内存效率,我有以下问题:

必须将正确的数据类型用于相应的变量.将数值表示1为a byte需要内存的八分之一(但如果我错了,请纠正我).我的问题是,如果在定义变量类型或初始化时发生内存分配/推导?这可能看起来很奇怪,但我要求关于不需要初始化的全局变量,因为它们具有与局部变量相关的默认值.我还想知道对象数据类型是否有默认大小?我认为这是基于JVM(32位对64位)?

java variables memory-management global-variables

5
推荐指数
0
解决办法
2412
查看次数

以Java格式存储颜色;字节;字节与字节[3]对比int

我需要存储大量的RGB颜色对象.对于一些常见的用法,这些占我应用总内存的8%到12%.我现在定义如下:

class MyColor {
byte red;
byte green;
byte blue;
}
Run Code Online (Sandbox Code Playgroud)

我假设(大多数)JVM实际上为每个条目使用int.最简单的选择是:

class MyColor {
byte [] color = new byte[3];
private static final int red = 0;
private static final int green = 1;
private static final int blue = 2;
}
Run Code Online (Sandbox Code Playgroud)

将整个数组放在一个int中吗?或者它是一个int [3]的封面?如果是第一个,这很好.如果是第二个,那么最好的是:

class MyColor {
int color;
private static final int red_shift = 0;
private static final int green_shift = 8;
private static final int blue_shift = 16;
}
Run Code Online (Sandbox Code Playgroud)

还是有更好的方法?

更新:我还将有一个getRed(),setRed(int),...作为访问器.我刚刚列出了类的数据组件以使其更小.和大小是关键的问题在这里.代码不会花费大量时间来访问这些值,因此性能不是一个大问题.

更新2:我使用SizeofUtil …

java byte

5
推荐指数
2
解决办法
4547
查看次数

Java'Date'对象大小

如何有效地确定内存中Date对象的大小?

最初我通过这个链接谈论一个日期对象的9个字节 ..

当我找到这个链接时,我试图找到它,它说的是32字节!!!! 对于内存中的日期对象.

内存中的日期对象大小

请帮助.

思考这些问题的原因:我正在将数百万个特定类的对象加载到内存中,以进行一些计算.该类中的一个变量是Date对象.我可以将值存储为long,但这需要代码中的小怪癖.我正在考虑尽可能减少内存占用.要做到这一点,我需要知道每种情况下的确切内存要求才能接听电话.

java memory date

5
推荐指数
1
解决办法
1507
查看次数

在Clojure中,我如何知道ref总共使用了多少内存?

我想开始确定我的refs的内存需求以及它们随应用程序的使用而增长的方式.我怎样才能做到这一点?

clojure

4
推荐指数
1
解决办法
1679
查看次数

为什么在 Java 中这种情况下原始数据类型比引用数据类型消耗更多内存?

我试图检查程序的内存消耗。在检查过程中,我注意到了一些有趣的事情。

我创建了一个 Load 类,其中包含一些字段。

class Load {
    String name;
    String title;
    long id;
}
Run Code Online (Sandbox Code Playgroud)

我创建了 500000 个 Load 对象并将它们添加到 ArrayList。我发现,它占用18 MB了内存。

然后,我修改了 Load 类并使用了referenceLong 类型。

class Load {
    String name;
    String title;
    Long id;
}
Run Code Online (Sandbox Code Playgroud)

再次创建了 500000 个 Load 对象并将它们添加到 ArrayList。有趣的是,这一次它占用的内存比前一次少。它的方式是 14 MB。

运行测试更改操作系统和 JVM 版本。找到以下结果。

OS: Windows 10 Pro 64 bit
JDK: 11 64bit
 
Object Created  | Load Object         | Memory | Load Object         | Memory  
------------------------------------------------------------------------------
1. 500000       | With primitive long | 18 …
Run Code Online (Sandbox Code Playgroud)

java memory jvm primitive-types

4
推荐指数
1
解决办法
392
查看次数

Java中Optional <T>的GC开销

我们都知道,用Java分配的每个对象都增加了以后的垃圾回收周期的权重,并且Optional<T>对象没有什么不同。我们经常使用这些对象来包装可为空的对象,这将导致代码更安全,但是要花多少钱呢?

是否有人知道可选对象添加了什么样的附加GC压力,而不是简单地返回null,以及这对高通量系统的性能有什么样的影响?

java garbage-collection optional

3
推荐指数
1
解决办法
335
查看次数

Java中的Integer()有多大?

Integer()有多大?我问因为下面发生的事情.

在尝试将10 ^ 6个整数(在[0,10 ^ 6)中)放入双端队列后,我的堆内存耗尽.该实现使用双向链表并显示为

Deque<Item> implements Iterable<Item> { }
Run Code Online (Sandbox Code Playgroud)

但是当使用Strings时,我能够完成而无需增加堆的大小:

String hw = "Hello, world."; 

for (i=0;i<10**6;i++) {
 myDq.addToEnd(hw); 
}
Run Code Online (Sandbox Code Playgroud)

java performance

1
推荐指数
1
解决办法
260
查看次数

Java中对象和字符串的大小

我试图找出有效的数据类型.我知道int是4个字节,char是一个字节.

  1. 一个包含五个整数的对象(4*5 = 20个字节)
  2. 一个有十个字符的String对象.(假设它有10个字符10*1 = 10个字节)

我对吗?你觉得哪一个更好?

java

-1
推荐指数
2
解决办法
188
查看次数