最近專案裡要解析協議,就要用到字串的擷取,拼接等操作。所以,順道看到一篇有意思的文章是講幾種字串拼接的效率的,感覺不錯,有助於理解stringbuilder , stringbuffer , string 的。
第一步,五種字串拼接列出來
第二步準備工作
long n = 5000;
logutil.fussenlog().d("開始了");
long str1 = system.currenttimemillis();
string s1 = new string("hello");
for (long i = 0; i < n; i++)
long e1 = system.currenttimemillis();
long t1 = e1 - str1;
long str2 = system.currenttimemillis();
string s2 = new string("hello");
for (long i = 0; i < n; i++)
long e2 = system.currenttimemillis();
long t2 = e2 - str2;
long str3 = system.currenttimemillis();
string s3 = new string("hello");
for (long i = 0; i < n; i++)
long e3 = system.currenttimemillis();
long t3 = e3 - str3;
long str4 = system.currenttimemillis();
stringbuffer s4 = new stringbuffer("hello");
for (long i = 0; i < n; i++)
long e4 = system.currenttimemillis();
long t4 = e4 - str4;
long str5 = system.currenttimemillis();
stringbuilder s5 = new stringbuilder("hello");
for (long i = 0; i < n; i++)
long e5 = system.currenttimemillis();
long t5 = e5 - str5;
這裡n設定5000 原因是我的測試機有點老 如果真機好點 可以設定10000+ 這樣最後兩個效果能明顯
第三步:看log
ok,剩下的就是看圖說話了。
幾種拼接字串的效率問題
public class test long end1 system.currenttimemillis long time1 end1 start1 system.out.println 用string 拼接字串的時間 time1 long start2 system.currenttimemil...
golang 幾種字串的拼接方式
最近在做效能優化,有個函式裡面的耗時特別長,看裡面的操作大多是一些字串拼接的操作,而字串拼接在 golang 裡面其實有很多種實現。1.直接使用運算子func benchmarkaddstringwithoperator b testing.b golang 裡面的字串都是不可變的,每次運算都會產生...
幾種拼接字串的效率問題
拼接字串,大致有3個class可以用,他們是string,stringbuffer,stringbuilder,stringbuilder是1.5中來代替stringbuffer的。檢驗方法如下 public class test long end1 system.currenttimemillis...