美文网首页
java.lang.OutOfMemoryError: GC o

java.lang.OutOfMemoryError: GC o

作者: 舒尔诚 | 来源:发表于2020-12-01 18:47 被阅读0次

    import java.util.*;public class GarbageCollector {

    public static void main(String... args) {
    
        System.out.printf("Testing...%n");
        List<Double> list = new ArrayList<Double>();
        for (int outer = 0; outer < 10000; outer++) {
    
            // list = new ArrayList<Double>(10000); // BAD
            // list = new ArrayList<Double>(); // WORSE
            list.clear(); // BETTER
    
            for (int inner = 0; inner < 10000; inner++) {
                list.add(Math.random());
            }
    
            if (outer % 1000 == 0) {
                System.out.printf("Outer loop at %d%n", outer);
            }
    
        }
        System.out.printf("Done.%n");
    }}
    

    在Windows 7 32位上使用java 1.6.0_24-b07.

    Java-Xloggc:gc.log GarbageCollection

    然后查看gc.log

    用坏方法触发444次
    用更差的方法触发666次
    用更好的方法触发354次
    当然,这不是最好的测试,也不是最好的设计,但是当您面临这样的情况时,除了实现这样的循环之外,或者在处理行为不好的现有代码时,选择重用对象而不是创建新的对象可以减少垃圾收集器遇到阻碍的次数.

    解决方案:
    https://www.jb51.net/article/102191.htm

    相关文章

      网友评论

          本文标题:java.lang.OutOfMemoryError: GC o

          本文链接:https://www.haomeiwen.com/subject/ilaswktx.html