簡單的愚蠢問題。我有一個包含java對象的集合。這些對象不是同一個類的實例,但它們實現相同的接口並且在概念上非常「相似」,因此它們的大小應該非常相似。我需要了解這個集合在內存中佔用多少空間。什麼是最簡單(最好)的方法來計算呢?我知道我可以把每個可以駐留在集合中的java類,計算它們的大小(深度大小,反射等),得到平均值,乘以N(集合大小)並獲得最終值。測量內存中java對象佔用空間的最佳方式
但是這樣做是否可以通過其他方式完成 - 計算現有集合的大小(沒有在反射中潛水,字段大小等)?我明白,將集合序列化爲字節流並確定輸出大小將不起作用,因爲序列化不會反映確切的對象內存佈局。但也許有其他方法可以做到這一點?
請注意,對於給定對象,不同的JVM可能不會使用相同的大小。 –
具有不同大小引用的相同JVM不太可能使用相同數量的內存。 –