有没有办法预测我的Java程序要占用多少内存?我来自C的背景,我在类上实现了诸如“ size\_in\_bytes()”之类的方法,并且可以相当准确地预测应用程序的运行时内存占用量.现在我处在Java世界中,这并不那么容易…有共享的引用,池,不可变对象…但是我仍然希望能够在看一下之前预测一下我的内存占用量进程大小位于顶部.

解决方法:

如果使用检测API,则可以检查对象的大小.使用起来有点棘手-它需要一个“ premain”方法和额外的VM参数-但是网络上有很多示例. “ java工具大小”将为您找到这些.

请注意,默认方法只会给您一个较浅的大小.并且除非您避免在构造函数之外进行任何对象构造(这几乎是不可能的),否则周围会有死对象等待被垃圾回收.


但是总的来说,如果您对生成的对象数量有很好的控制,则可以使用它们来估计应用程序的内存需求.

标签: java, memory, memory-management, java-ee

相关文章推荐

添加新评论,含*的栏目为必填