java JIT - 可以进行哪些优化?

时间:2011-02-07 14:53:59

标签: java optimization jit

学术上很好奇。 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 个答案:

答案 0 :(得分:5)

理论上,JVM可能会让你的例子蠢蠢欲动。实际上,现有的JVM不会;将预算用于优化可能不是一个非常有利可图的地方。特别是因为字符串格式化通常用于序列化数据,在这种情况下,您可能最终花费大部分时间等待I / O完成。