我正在學習java,並且我記得在某處讀到java對象時,在JVM內部有一些開銷,這是由虛擬機管理的原因。所以我的問題是,有人能告訴我是否以及如何在HotSpot JVM中獲取對象的總大小以及可能帶來的任何開銷?瞭解JVM中的對象開銷
7
A
回答
9
你不能直接得到開銷。開銷的大小取決於實現,可能因許多因素而異(例如精確的JVM版本,以及您是否在32位或64位JVM上)。
然而,假設在像HotSpot這樣典型的現代JVM實現中,每個對象的開銷是在8和16字節之間是合理安全的。數組的開銷通常比其他對象大4個字節(包含整數數組長度)。
參見:
1
我發現this article相當翔實的,雖然我有一些懷疑的一些表
+0
請注意,只包含鏈接的答案通常是不鼓勵的;見http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers。也許你可以總結文章的相關部分。 – sleske
相關問題
- 1. JVM開銷太大
- 2. 瞭解JVM GC
- 3. 瞭解Java中的對象
- 4. 瞭解對象
- 5. 共享對象開銷
- 6. 瞭解HTTPS連接設置開銷
- 7. 瞭解javascript對象
- 8. 瞭解JavaScript對象
- 9. 瞭解RAII對象
- 10. 瞭解javascript對象
- 11. 瞭解JVM內存優化
- 12. 與類對象相關的Javascript開銷
- 13. 在JVM中創建對象
- 14. 瞭解了的UIDatePicker對象NSDateFormatter行爲
- 15. 瞭解scala中的類和對象
- 16. 瞭解Android中的android.graphics.Camera對象
- 17. 瞭解Python中的ID對象
- 18. 瞭解Java中的對象所有權
- 19. 瞭解C++中的動態對象(「新」)
- 20. 銷燬Ember.js中的對象
- 21. 解開Numpy的「對象」dtypes
- 22. 有什麼開銷#定義對象?
- 23. 瞭解對象陣列
- 24. node.js:瞭解對象原型
- 25. 瞭解VBA對象變量
- 26. 瞭解Python類和對象
- 27. 瞭解underscore.js:_對象定義
- 28. 瞭解運行對象表
- 29. 瞭解Thrift Javascript對象
- 30. 瞭解Neo4j對象緩存
的可能重複中提到的值[Java中對象的內存消耗是多少?](http://stackoverflow.com/questions/258120/what-is-the-memory-cons在java中使用對象) –
你看過http://stackoverflow.com/questions/258120/what-is-the-memory-consumption-of-an-object-in-java ? –
我不完全問同樣的事情。我問的是開銷和總大小,所以我可以根據總大小得出開銷的百分比。 – NlightNFotis