作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在测试一个监视应用程序运行状况的应用程序,决定因素之一是 jvm 内存。我很好奇我怎样才能把它吃完才能达到测试的阈值?这行得通吗?
ArrayList<Object> list = new ArrayList<Object>();
while(true){
list.add(new Object());
}
类似于在 C 中咀嚼应用程序内存,我不断地分配东西?或者垃圾收集器会来帮我清理这一切吗?还是我完全没有捕获重点?
最佳答案
不,你没有错过目标。垃圾收集器只会收集您不再引用的对象。在您的示例代码中,列表将始终在范围内,它引用的所有对象也将始终在范围内,因此您最终将填满堆并生成 OutOfMemoryException。
正如评论中所说,使用普通对象可能不是最好的方法,具体取决于您的堆有多大。更大的对象或简单的基元数组将使您的生活更轻松。
关于java - 咀嚼 JVM 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51063222/
我正在测试一个监视应用程序运行状况的应用程序,决定因素之一是 jvm 内存。我很好奇我怎样才能把它吃完才能达到测试的阈值?这行得通吗? ArrayList list = new ArrayList()
我的应用程序尺寸逐渐变大,我正在尝试使用“使用共享运行时”缩小尺寸,应用程序运行正常,没有任何错误。但是,当我选中“使用共享的运行时”复选框时,我可以创建apk文件来安装它,但在某些曾经工作过的设备上
我是一名优秀的程序员,十分优秀!