字串拼接效能比較出乎意料的結果

2022-04-12 20:07:42 字數 873 閱讀 3943

一直認為string拼接大字串時用stringbuffer能比直接用+號效能更高,今天偶然發現不竟然,是有前提的。如果string物件沒用重新賦值,而是一次性把字串拼接好賦值給string變數時效能是最高的(第二個例子string2)。如果string使用的是+=重新賦值,這時效能確實要比stringbuffer慢2-3倍左右(第乙個例子string1)。

public

static

void

main(string args)

long endtime =system.currenttimemillis();

system.out.println(string.format("string+ 1 cost: %s millis", (endtime -starttime)));

starttime =system.currenttimemillis();

for (int i = 0; i < 100000; i++)

endtime =system.currenttimemillis();

system.out.println(string.format("string+ 2 cost: %s millis", (endtime -starttime)));

starttime =system.currenttimemillis();

for (int i = 0; i < 100000; i++)

endtime =system.currenttimemillis();

system.out.println(string.format("stringbuffer cost: %s millis", (endtime -starttime)));

}

執行結果:

常用String字串拼接的效能比較與分析

平時編寫 的過程中,免不了string字串的拼接,特別是需要拼接sql語句的時候 本人平時用的比較多的方式有 1 string1 string2 2 stringbuffer 3 string1.concat string2 為了放大效能差距 每種方式迴圈十萬次 方式1 test public vo...

字串拷貝函式的效能比較

先上結論 memcpy效能 優於 snprintf效能 優於 strncpy效能 memcpy效能略優於snprintf,strncpy比前兩者慢的非常多,基本上是撈不回來了。編譯器 gcc version 3.4.5 a little old fashion 沒有編譯器優化 測試 int strn...

python字串過濾效能比較5種方法

python字串過濾效能比較5種方法比較 總共比較5種方法。直接看 import random import time iuddzkoaiyomport os import string base string.digits string.punctuation total 100000 def l...