Java对象占用多少内存?。

zms
小美 2013-02-17 字数 197
loading ...

Java对象究竟占用多少内存,怎么估算?

很早很早以前就探讨过。

今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

见附件。

注:这玩意儿肯定和jvm实现以及参数有关,所以这里贴的结论仅供参考。

Java Java技术
35 个回复
guestking
2013-02-17

所以说如果内存里要放大量的数字的话,用Integer会比用int消耗更多的内存

【 在 zms (小美) 的大作中提到: 】

: Java对象究竟占用多少内存,怎么估算?

: 很早很早以前就探讨过。

: 今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

: ...................

zms
小美 2013-02-17

嗯,简单的说:  数据结构越低级,越是解决特定问题的,占用的内存越少

【 在 guestking (能把guessking这个id送给我吗?) 的大作中提到: 】

: 标  题: Re: Java对象占用多少内存?。

: 发信站: 水木社区 (Sun Feb 17 15:29:57 2013), 站内

: 所以说如果内存里要放大量的数字的话,用Integer会比用int消耗更多的内存

: 【 在 zms (小美) 的大作中提到: 】

: : Java对象究竟占用多少内存,怎么估算?

: : 很早很早以前就探讨过。

: : 今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

: : ...................

: --

tsingxu
唧唧唧唧 2013-02-17

不错 很清晰

【 在 zms 的大作中提到: 】

: Java对象究竟占用多少内存,怎么估算?

: 很早很早以前就探讨过。

: 今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

: ...................

Mikov
Mikov Chain 2013-02-17

看起来不比c++吃内存呀, 为啥跑起来就是另一番景象呢?

【 在 zms (小美) 的大作中提到: 】

: Java对象究竟占用多少内存,怎么估算?

: 很早很早以前就探讨过。

: 今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

: ...................

yourgf
为了我的那个G,努力 2013-02-17

这个是净内存占用

外面还得套上jvm那一坨不是

而且,用完了扔那,等人来收拾的时候

还是要占着的不是

【 在 Mikov (Mikov Chain) 的大作中提到: 】

: 看起来不比c++吃内存呀, 为啥跑起来就是另一番景象呢?

guestking
2013-02-17

因为自动档比手动档费油啊

【 在 Mikov (Mikov Chain) 的大作中提到: 】

: 看起来不比c++吃内存呀, 为啥跑起来就是另一番景象呢?

Tuscany
Tuscany 2013-02-17

这比喻贴切

【 在 guestking 的大作中提到: 】

: 因为自动档比手动档费油啊

Orpherus
奥路菲 2013-02-17

8at vs 5mt呢?

【 在 guestking (能把guessking这个id送给我吗?) 的大作中提到: 】

: 因为自动档比手动档费油啊

titiclub
悟空 2013-02-17

赞,什么网站?

【 在 zms 的大作中提到: 】

: Java对象究竟占用多少内存,怎么估算?

: 很早很早以前就探讨过。

: 今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

: ...................

holy834
IDA 2013-02-17

和c++比就多了点object overhead

还有为了平台适应性多的8bytes padding

【 在 zms (小美) 的大作中提到: 】

: Java对象究竟占用多少内存,怎么估算?

: 很早很早以前就探讨过。

: 今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

: ...................

imp
=。= 2013-02-17

object overhead和padding分别干啥用的?

【 在 zms (小美) 的大作中提到: 】

: Java对象究竟占用多少内存,怎么估算?

: 很早很早以前就探讨过。

: 今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

: ...................

hunterlee
hunter 2013-02-18

附件,FYI.

java的内存开销比一般人想象的大很多,例如100个entry的Treemap<Double,Double>

82%的内存都是overhead

做web开发可能没有太多感觉,但如果跑稍微大规模数据的算法,就会发现这是个很严重

的问题。

所以我现在都尽量用trove4j这样的库,而不用标准库。

【 在 zms (小美) 的大作中提到: 】

: Java对象究竟占用多少内存,怎么估算?

: 很早很早以前就探讨过。

: 今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

: ...................

oldwatch
一条叫java的鱼◎城内风光独好 2013-02-18

赞美

【 在 hunterlee (hunter ) 的大作中提到: 】

: 附件,FYI.

: java的内存开销比一般人想象的大很多,例如100个entry的Treemap<Double,Double>

: 82%的内存都是overhead

: ...................

helloweenpad
helloweenpad 2013-02-18

这个肯定更费钱

【 在 Orpherus 的大作中提到: 】

: 8at vs 5mt呢?

guestking
2013-02-18

【 在 hunterlee (hunter ) 的大作中提到: 】

: 附件,FYI.

: java的内存开销比一般人想象的大很多,例如100个entry的Treemap<Double,Double>

: 82%的内存都是overhead

: ...................

olives
楓~老婆說:賠償只要貴的 2013-02-18

不见得,最屌丝的8AT也就20多万

5MT最nb的有几百万的

【 在 helloweenpad (helloweenpad) 的大作中提到: 】

: 标  题: Re: Java对象占用多少内存?。

: 发信站: 水木社区 (Mon Feb 18 10:55:15 2013), 站内

: 这个肯定更费钱

: 【 在 Orpherus 的大作中提到: 】

: : 8at vs 5mt呢?

: :

: --

roller
查查,查个毛啊 2013-02-18

int[] 和 int[][][][]占用的内存可是不一样的啊,多一点线性占用无所谓

llABC
llABC 2013-02-18

多谢,不知java有啥sizeof函数么,获取一个运行对象的占用空间?

【 在 zms (小美) 的大作中提到: 】

: Java对象究竟占用多少内存,怎么估算?

: 很早很早以前就探讨过。

: 今天看到一个讲得比较清楚直接靠谱的一个结论,不敢独享,放到这里。

: ...................

JunWi
Hey, genius! 2013-02-18

no,java不需要自己去算地址,所以也没必要提供这样的函数

【 在 llABC (llABC) 的大作中提到: 】

:     多谢,不知java有啥sizeof函数么,获取一个运行对象的占用空间?