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

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

// 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;
}