Использование currentTimeMillis () для сравнения concat и append - PullRequest
0 голосов
/ 17 марта 2020

String conSingles = ""; // один конг. одиночные символы в строку String appendSingles = "";

    //Testing one char conc. and append
    long before = System.currentTimeMillis(); //static method so no new
    for(int i = 0; i <10; i++) {
        for (int j = 0; j <70000; j++) {
            conSingles += "j";
        }
        conSingles=""; //Clear string
    }
    long after = System.currentTimeMillis();

    long before2 = System.currentTimeMillis(); //static method so no new
    for(int i = 0; i <10; i++) {
        StringBuilder appSingles = new StringBuilder(); //one to append single chars to
        for (int j = 0; j < 75000000; j++) {
           appSingles.append("j");
        }
       appendSingles = appSingles.toString();
        appendSingles = "";
    }
    long after2 = System.currentTimeMillis();
    long total = (after-before)/10;
    long total2 = (after2-before2)/10;

Я сравниваю, сколько строк в одном символе я могу собрать в 1000 мсэ c, используя String concat против StringBuilder append. Я близок к 1000 мсе c, когда я запускаю l oop один раз, но когда я делаю это в среднем десять раз, я всегда получаю около 3-400 мсе c в среднем за раунд. Что в моем методе делает один раунд таким медленным по сравнению с 10 раундами?

...