推 silver8250:感謝您熱情的回答!! 04/27 14:45
: 推 ClareQ:還可以更快喔,照理說不用每次都產生一組char陣列^^ 04/27 02
試了一下,這樣確實更快:
1 是我原本的寫法
2 是原 po 的寫法
3 是 infinitlee 的 String.format(為什麼那麼慢?我以為會很快)
4 是改成暴力寫死的寫法
godfat ~/p/t/padding>
time java Padding; time java Padding2; time java Padding3; time java Padding4
1.43 real 1.28 user 0.10 sys
5.94 real 5.63 user 0.16 sys
5.53 real 5.16 user 0.20 sys
1.07 real 0.95 user 0.07 sys
private static String Spaces = "這邊先產生最長可能需要的空白";
public static String pad(String str, int size){
int length = str.getBytes().length;
if(length >= size)
return str;
else
return str + Spaces.substring(0, size-length-1);
}
缺點是 padding 的 char 寫死了,而且長度有限
當然啦,可以再改良,例如發現長度不足時再補充長度...
字元不對時重新產生新的 buffer...
這樣就能跟 1 號的介面相容
不過要花的功就多很多了,划不划算要看跑什麼東西
updated:
加個 -server 參數,差距減少了:
godfat ~/p/t/padding>
time java -server Padding; time java -server Padding2; \
time java -server Padding3; time java -server Padding4
1.14 real 1.13 user 0.08 sys
4.28 real 4.20 user 0.13 sys
3.94 real 3.94 user 0.18 sys
0.88 real 0.89 user 0.07 sys
--
#!/usr/bin/env ruby [露比] /Programming (Kn|N)ight/ 看板《Ruby》
# if a dog nailed extra legs that http://www.ptt.cc/bbs/Ruby/index.html
# walks like an octopus, and Welcome ~Ruby@ptt~
# talks like an octopus, then ◢█◣ http://www.ruby-lang.org/
# we are happy to treat it as █ http://www.ruby-doc.org/
# if it were an octopus. ◥ ◤ http://www.rubyforge.org/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18
※ 編輯: godfat 來自: 220.135.28.18 (04/27 03:20)