相关疑难解决方法(0)

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

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

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

java memory

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

计算Java对象的字节大小

我正在计算java对象[hashmap]的大小[使用的内存].它包含[在运行时]不同数据类型的元素,因此[no-of-elem*size-of-element]并不是一种好方法.现在的代码是通过一系列的

if (x)
  do something
else if (primitives)
  lookup size and calculate
Run Code Online (Sandbox Code Playgroud)

然而,这个过程是CPU占用并且效率低下.

我正在考虑采用以下两种方法:

  1. 将对象序列化为缓冲区并获取大小.
  2. 查看java.lang.instrument以获取大小

我正在寻找任何人使用这些方法的性能,效率,缩放等经验,或者如果你知道更好的方法.

PS:这是我正在构建的后台实用程序,因此大小不需要超级准确,尽管它应该是正确的.因此,我愿意以准确性换取性能

我对深度大小不感兴趣[不会计算此对象引用的对象的大小.]

我正在寻找性能比较和理解getObjectSize()如何在内部工作..所以我不会搞砸别的东西来提高性能

谢谢

java serialization instrumentation

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

有没有一种简单的方法来获取java对象的大小?

我想知道检索java对象大小的任何简单方法吗?另外,无论如何要在c ++中获得像sizeof运算符这样的类的大小?

java

10
推荐指数
2
解决办法
5999
查看次数

标签 统计

java ×3

instrumentation ×1

memory ×1

serialization ×1