有没有办法预测我的 Java 程序将占用多少内存?我来自 C++ 背景,我在类上实现了诸如“size_in_bytes()”之类的方法,我可以相当准确地预测我的应用程序的运行时内存占用。现在我在 Java 世界中,这不是那么容易......有引用,池,共享的不可变对象(immutable对象)......但我仍然希望能够在查看之前预测我的内存占用顶部的进程大小。
最佳答案
如果您使用检测 API,您可以检查对象的大小。使用起来有点棘手——它需要一个“premain”方法和额外的 VM 参数——但网上有很多例子。 “ java 仪器大小 ”应该会找到这些。
请注意,默认方法只会给你一个浅尺寸。除非您避免在构造函数之外构建任何对象(这几乎是不可能的),否则周围将有死对象等待垃圾回收。
但总的来说,如果您对生成的对象数量有很好的控制,您可以使用这些来估计应用程序的内存需求。
关于java - 预测 Java 内存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12009836/