相关疑难解决方法(0)

在Java中,确定对象大小的最佳方法是什么?

例如,假设我有一个应用程序可以读取包含大量数据行的CSV文件.我根据数据类型向用户提供行数的摘要,但我想确保我不读取太多数据行并导致OutOfMemoryErrors.每行都转换为一个对象.有没有一种简单的方法可以通过编程方式找出该对象的大小?是否有一个引用定义了大型基元类型和对象引用的大小VM

现在,我的代码可以读取多达32,000行,但我还希望代码能够读取尽可能多的行,直到我使用了32MB的内存.也许这是一个不同的问题,但我仍然想知道.

java memory

592
推荐指数
15
解决办法
28万
查看次数

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

一个具有100个属性的对象占用的内存空间是否与100个对象相同,每个属性有一个属性?

为对象分配了多少内存?
添加属性时会使用多少额外空间?

java memory footprint

208
推荐指数
8
解决办法
10万
查看次数

我的Bitset的大小是多少?

我希望以System.currentTimeInMillis最小的空间存储在内存中.因为我必须将数百万存储在内存中.

我转换它给binaryString了我41 bits

这是我的计划

public class BitSetSize {
    public static void main(final String[] args) {
        final long currentTimeMillis = System.currentTimeMillis();
        final String currentTimeToBinaryString = Long.toBinaryString(currentTimeMillis);
        System.out.println("Size in bits: " + currentTimeToBinaryString.length());

        final BitSet bitSet = BitSet.valueOf(new long[]{currentTimeMillis});
        System.out.println("Bitset length: " + bitSet.length());
        System.out.println("Bitset size: " + bitSet.size());

        System.out.println("Size of biset object(bytes): " + MemoryMeasurer.measureBytes(bitSet));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我得到了

Size in bits: 41
Bitset length: 41
Bitset size: 64
Size of biset object(bytes): 48
Run Code Online (Sandbox Code Playgroud)


-为什么bitSet.length() …

java memory bits memory-management data-structures

8
推荐指数
2
解决办法
5380
查看次数