我的方法是创建数十万个本地集合,并用随机字符串填充它们,如下所示:
SecureRandom random = new SecureRandom();
for(int i = 0 ; i < 100000 ; i++){
HashMap<String, String> map = new HashMap<String, String>();
for(int j = 0 ; j < 30 ; j++){
map.put(new BigInteger(130, random).toString(32), new BigInteger(130, random).toString(32));
}
}
我也提供了-XX:+UseGCOverheadLimit jvm参数,但不能得到错误。有没有什么简单可靠的方法/黑客来获取这个错误?
发布于 2013-06-15 00:23:34
我想这应该能起到作用。如果您运行的时间足够长:
HashMap<Long, String> map = new HashMap<Long, String>();
for (long i = 0; true; i++) {
for (int j = 0; j < 100; j++) {
String s = "" + j;
map.put(i, s);
}
}
我正在做的是慢慢增加非垃圾的数量,同时创建大量的垃圾。如果一直运行,直到非垃圾填满了几乎所有的堆,GC将达到垃圾收集所花费的时间百分比超过阈值的程度。
https://stackoverflow.com/questions/17112827
复制相似问题