java 拼接字符串性能_java字符串拼接与性能分析详解
假設有一個字符串,我們將對這個字符串做大量循環拼接操作,使用”+”的話將得到最低的性能。但是究竟這個性能有多差?如果我們同時也把StringBuffer,StringBuilder或String.concat()放入性能測試中,結果又會如何呢?本文將會就這些問題給出一個答案!
我們將使用Per4j來計算性能,因為這個工具可以給我們一個完整的性能指標集合,比如最小,最大耗時,統計時間段的標準偏差等。在測試代碼中,為了得到一個準確的標準偏差值,我們將執行20個拼接”*”50,000次的測試。下面是我們將使用到的拼接字符串的方法:
代碼如下:
Concatenation Operator (+)
String concat method – concat(String str)
StringBuffer append method – append(String str)
StringBuilder append method – append(String str)
最后,我們將看看字節碼,來研究這些方法到底是如何執行的。現在,讓我們先開始來創建我捫的類。注意為了計算每個循環的性能,代碼中的每段測試代碼都需要用Per4J庫進行封裝。首先我們先定義迭代次數
代碼如下:
private static? final int? OUTER_ITERATION=20;
private static final int INNER_ITERATION=50000;
接下來,我們將使用上述4個方法來實現我們的測試代碼。
代碼如下:
String addTestStr = "";
String concatTestStr = "";
StringBuffer concatTestSb = null;
StringBuilder concatTestSbu = null;
for (int outerIndex=0;outerIndex
總結
以上是生活随笔為你收集整理的java 拼接字符串性能_java字符串拼接与性能分析详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 快排非递归_C++ 中快排的递
- 下一篇: java如何获得键值_如何在java中取