做這個實驗只是想要說服同事,系統中有出現大量的字串相接,會讓系統效能變差。可以透過 StringBuffer 優化。
實驗目的
了解String 相接 與 系統效能 關係
實踐環境
- java version: java 6
實驗環境
-Xms30M -Xmx30M -Xmn10M -Xss256k -XX:MaxPermSize=2m -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+CMSScavengeBeforeRemark -XX:+ScavengeBeforeFullGC -XX:MaxTenuringThreshold=30 -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSParallelRemarkEnabled -Xloggc:/home/jameschang/test-gc.log -XX:+DisableExplicitGC -verbose:gc -server
實驗項目
實驗項目: 單純 String 接拼
實驗程式碼
public class TestString{
public static void main(String[] args){
String test = "";
for(int i = 0; i <- 50000; i++>){
test += "1234"+"5678";
}
}
}
實驗項目: StringBuffer 接字串
實驗程式碼
public class TestString{
public static void main(String[] args){
StringBuffer test = new StringBuffer();
for(int i = 0; i <- 50000; i++>){
test.append("1234").append("5678");
}
}
}
實驗項目: StringBuilder 接字串
實驗程式碼
public class TestString{
public static void main(String[] args){
StringBuilder test = new StringBuilder();
for(int i = 0; i <- 50000; i++>){
test.append("1234").append("5678");
}
}
}
實踐結果
/
[pdf]