做這個實驗只是想要說服同事,系統中有出現大量的字串相接,會讓系統效能變差。可以透過 StringBuffer 優化。
實驗目的
#
了解String 相接 與 系統效能 關係
實踐環境
#
實驗環境
#
1
|
-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 接拼
#
實驗程式碼
#
1
2
3
4
5
6
7
8
|
public class TestString{
public static void main(String[] args){
String test = "";
for(int i = 0; i <- 50000; i++>){
test += "1234"+"5678";
}
}
}
|
實驗項目: StringBuffer 接字串
#
實驗程式碼
#
1
2
3
4
5
6
7
8
|
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 接字串
#
實驗程式碼
#
1
2
3
4
5
6
7
8
|
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");
}
}
}
|
實驗果
#