String+シンプルモードの最適化
2243 ワード
シンプル+スティッチング最適化
毎回「+」を使ってつなぎ合わせると、新しいStringが生まれます。特にサイクルスティッチング文字列のシーンでは、性能損失は極めて深刻である:
コンパイラは最適化してくれますか?
シンプルモード
コンパイラ:IDEA JDKバージョン:1.8
ソースコード/部分コードを選択しました。
毎回「+」を使ってつなぎ合わせると、新しい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'+'を最適化します。複雑なシーンはテストできます。ですから、いくつかの簡単なつづり合わせに対して大胆な++++ができます。