0
如何獲取類java.awt.Image
的實例使用的內存?java.awt.Image使用的內存對象
有other similar questions,但有計算由一個特定的類(java.awt.Image
)的目的所使用的存儲器的更簡單的方法?
我寧願以編程方式獲取字節數量,而不是通過分析器,以便我可以使用它來計算我的應用程序內部的內存統計信息。
在此先感謝。
如何獲取類java.awt.Image
的實例使用的內存?java.awt.Image使用的內存對象
有other similar questions,但有計算由一個特定的類(java.awt.Image
)的目的所使用的存儲器的更簡單的方法?
我寧願以編程方式獲取字節數量,而不是通過分析器,以便我可以使用它來計算我的應用程序內部的內存統計信息。
在此先感謝。
這在java.awt.Image
的實現之間會有所不同,因爲它取決於子類如何決定存儲數據。
但是對於BufferedImage,img.getData().getDataBuffer();
會爲您提供存儲圖像的原始DataBuffer。然後您可以使用getDataType()
和getSize()
來確定數據緩衝區的容量。
創建其中約1000個,看看有多少堆增長。再次用不同的圖像大小進行計算並計算公式。對於給定的顏色深度,應該大致爲線性方程式 - 「k1 + k2 * num_pixels」。 – 2012-02-15 13:03:23