String+シンプルモードの最適化

2243 ワード

シンプル+スティッチング最適化
毎回「+」を使ってつなぎ合わせると、新しいStringが生まれます。特にサイクルスティッチング文字列のシーンでは、性能損失は極めて深刻である:
コンパイラは最適化してくれますか?
シンプルモード
コンパイラ:IDEA JDKバージョン:1.8
ソースコード/部分コードを選択しました。
   String ss = "191823617";
        int cellid = Integer.parseInt(ss);
        System.out.println(cellid / 256);
        System.out.println(cellid % 256);
         int endid = cellid / 256;
         int lcrid = cellid % 256;
        String cgi="460-00-"+endid+"-"+lcrid;
作成したクラスファイルを逆コンパイルします。
    String ss = "191823617";
        int cellid = Integer.parseInt(ss);
        System.out.println(cellid / 256);
        System.out.println(cellid % 256);
        int endid = cellid / 256;
        int lcrid = cellid % 256;
        (new StringBuilder()).append("460-00-").append(endid).append("-").append(lcrid).toString();
コンパイルの最適化段階が見られます。String'+'を最適化します。複雑なシーンはテストできます。ですから、いくつかの簡単なつづり合わせに対して大胆な++++ができます。