Почему двойная проверка блокировки на 25% быстрее в примере с Joshua Bloch Effective Java

Привет ниже, фрагмент из Effective Java 2nd Edition. Здесь автор утверждает, что следующий фрагмент кода на 25% быстрее, чем тот, в котором вы не используете переменную результата. По книге "Эта переменная гарантирует, что поле будет прочитано только один раз в общем случае, когда оноs уже инициализирован. " , Я не могу понять, почему этот код будет быстрым после инициализации значения по сравнению с, если мы не используем результат локальной переменной. В любом случае после инициализации у вас будет только одно энергозависимое чтение независимо от того, используете вы локальную переменную или нет.

// Double-check idiom for lazy initialization of instance fields 
private volatile FieldType field;

FieldType getField() {
    FieldType result = field;
    if (result == null) {  // First check (no locking)
        synchronized(this) {
            result = field;
            if (result == null)  // Second check (with locking)
                field = result = computeFieldValue();
        }
    }
    return result;
}

Ответы на вопрос(2)

Ваш ответ на вопрос