WebView и HTML5 <видео>

Короткий ответ: не беспокойтесь об этом!

Длинный ответ:

Говоря о конечных локальных переменных , имейте в виду, что использование ключевого слова final поможет компилятору оптимизировать код статически , что в конечном итоге может привести к более быстрому коду. Например, окончательные строки a + b в приведенном ниже примере объединены статически (во время компиляции).

public class FinalTest {

    public static final int N_ITERATIONS = 1000000;

    public static String testFinal() {
        final String a = "a";
        final String b = "b";
        return a + b;
    }

    public static String testNonFinal() {
        String a = "a";
        String b = "b";
        return a + b;
    }

    public static void main(String[] args) {
        long tStart, tElapsed;

        tStart = System.currentTimeMillis();
        for (int i = 0; i < N_ITERATIONS; i++)
            testFinal();
        tElapsed = System.currentTimeMillis() - tStart;
        System.out.println("Method with finals took " + tElapsed + " ms");

        tStart = System.currentTimeMillis();
        for (int i = 0; i < N_ITERATIONS; i++)
            testNonFinal();
        tElapsed = System.currentTimeMillis() - tStart;
        System.out.println("Method without finals took " + tElapsed + " ms");

    }

}

Результат?

Method with finals took 5 ms
Method without finals took 273 ms

Протестировано на Java Hotspot VM 1.7.0_45-b18.

Итак, насколько реальное улучшение производительности? Я не смею сказать. В большинстве случаев, вероятно, маргинальные (~ 270 наносекунд в этом синтетическом тесте, потому что конкатенация строк вообще исключена - редкий случай), но в высоко оптимизированном коде полезности может быть фактором. В любом случае ответ на исходный вопрос: да, это может улучшить производительность, но в лучшем случае в лучшем случае .

Времени компиляции вовремя, я не мог найти никаких доказательств того, что использование ключевого слова final оказывает какое-либо измеримое влияние на производительность.

122
задан Xcodian Solangi 3 November 2017 в 13:54
поделиться