java优化器,支持编译时功能评估

时间:2015-06-05 16:21:26

标签: java optimization

是否有任何优化器(免费或商业)支持编译时功能评估(CTFE,也就是编译时函数执行),在编译时知道参数并且它没有副作用?

简单示例:

public class Main {

    public static void main(String[] args) {
        HtmlDiv div = new HtmlDiv("test");
        System.out.println(div);
    }
}

class HtmlDiv {

    public final String text;

    public HtmlDiv(String text) {
        this.text = text;
    }

    public String toString() {
        return "<div>" + text /* in real life, escape would be used */ + "</div>";
    }
}

这可以优化为:

public class Main {

    public static void main(String[] args) {
        System.out.println("<div>test</div>");
    }
}

我问的主要原因,从示例中可以看出,对我的servlet使用静态类型会很好(可能有更好的语法,例如jvm的ceylong语言),但是一个println()和分别计算每个html元素的文本。但是,肯定有更多的例子可供它们使用。

我尝试过ProGuard,但没有优化。我google了,但没有找到任何支持它的优化器。我也试过阅读http://proguard.sourceforge.net/alternatives.html的链接,但没有一个优化器在他们的网站编译时功能评估中提到,只有其他优化,例如死代码消除。

0 个答案:

没有答案