Java JIT - какие оптимизации возможны? - PullRequest
3 голосов
/ 07 февраля 2011

Академически любопытно. Может ли JIT взять код, подобный этому, распознать, что строка формата является статической окончательной, и, таким образом, предварительно вычислить строку форматированного фрагмента, оптимизировав ее до значения только StringBuilder с минимальным добавлением?

public static String buildDeleteSql(BaseObject object)
{
    String table;
    String schema;

    String deleteSql = String.format(
            "DELETE FROM %s.%s WHERE %s = '%s' AND %s = '%s'",
            schema,
            table,
            BaseObject.ATTR_ID,
            StringUtils.escapeForSQLString(object.getId()),
            BaseObject.ATTR_REVISION,
            StringUtils.escapeForSQLString(object.getRevision())
        );

    return deleteSql;
}

1 Ответ

5 голосов
/ 07 февраля 2011

Теоретически, JVM, возможно, может подорвать ваш пример.Между тем, в действительности существующие JVM не будут;Вероятно, это не очень выгодное место, чтобы тратить бюджет на оптимизацию.Тем более, что форматирование строк обычно выполняется для сериализации данных, и в этом случае вы, вероятно, будете тратить большую часть времени на ожидание завершения ввода-вывода.

...