【问题标题】:Memory used by java.awt.Image objectjava.awt.Image 对象使用的内存
【发布时间】:2012-02-15 12:56:16
【问题描述】:

如何获取java.awt.Image 类的实例使用的内存?

other similar questions,但有没有更简单的方法来计算特定类的对象使用的内存 (java.awt.Image)?

我希望以编程方式而不是通过分析器获取使用的字节数,以便我可以使用它来计算我的应用程序内的内存统计信息。

提前致谢。

【问题讨论】:

  • 创建大约 1000 个,看看堆增长了多少。使用不同的图像大小再次执行此操作并计算方程式。对于给定的颜色深度,应该大致是一个线性方程——k1 + k2 * num_pixels

标签: java memory profiling


【解决方案1】:

这在 java.awt.Image 的实现之间会有所不同,因为这取决于子类决定如何存储数据。

但对于 BufferedImage,img.getData().getDataBuffer(); 会为您提供存储图像的原始 DataBuffer。然后您可以使用getDataType()getSize() 来确定数据缓冲区的容量。

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 2012-11-02
    • 1970-01-01
    • 2015-10-15
    • 2010-10-08
    • 2010-10-26
    • 2014-07-30
    • 1970-01-01
    相关资源
    最近更新 更多