字串拼接效能對比

2021-09-27 03:49:09 字數 2005 閱讀 1474

總是在思考為什麼要用messageformat.format,如果只是簡單的拼接效率高還是使用format效率高:

轉完善了部分.

public

static

void

main

(string[

] args)

long end = system.

currenttimemillis()

; system.out.

println

("concatenation = "+(

(end - start))+

" millisecond");

start = system.

currenttimemillis()

;for

(int i =

0; i < count; i++

) end = system.

currenttimemillis()

; system.out.

println

("format = "+(

(end - start))+

" millisecond");

start = system.

currenttimemillis()

;for

(int i =

0; i < count; i++

) end = system.

currenttimemillis()

; system.out.

println

("messageformat%s = "+(

(end - start))+

" millisecond");

start = system.

currenttimemillis()

;for

(int i =

0; i < count; i++

); hi to you "

, i,

+i *2)

;}end = system.

currenttimemillis()

; system.out.

println

("messageformat${} = "+(

(end - start))+

" millisecond");

start = system.

currenttimemillis()

;for

(int i =

0; i < count; i++

) end = system.

currenttimemillis()

; system.out.

println

("stringbuilder = "+(

(end - start))+

" millisecond");

}

執行結果:

concatenation = 785 millisecond

format = 10036 millisecond

messageformat%s = 2298 millisecond

messageformat${} = 21874 millisecond

stringbuilder = 903 millisecond

發現字串拼接的效率並不低的.但是為什麼要使用messageformat.format方法呢?

原來,format的方法是相當於佔位符的,這樣格式和引數很好的能夠理解.

舉個栗子:

有時候返回前端乙個列表的時候,需要我們自己返回前端的**;

string tdarr=…;

string result=messageformat.format("", tdarr);

如果乙個乙個拼接,就會不方便閱讀,使用messageformat.format就很容易閱讀.

字串拼接效能問題

1 對於少量固定的字串拼接,如string s a b c 系統會優化成s string.concat a b c 不會新建多個字串。如果寫成string s a s b s c 則會建立三個新的字串。可見,它和stringbuilder有著相似的效率,比用 的拼接方式高效,並且 易於閱讀。stri...

python效能對比

1 coding utf8 import datetime road nodes for i in range 5000000 road nodes i beg time datetime.datetime.now for key,val in road nodes.items pass end t...

SSD效能對比

ssd效能測試 順序寫 16k iops 85061.08 順序寫 8k iops 146250.93 順序寫 4k iops 239816.69 順序寫 2k iops 294540.87 順序寫 1k iops 347170.06 隨機寫 16k iops 21865.24 隨機寫 8k iop...