[問題] 效能上的問題
小弟寫了個固定長度用的函式
這個函式是如果字串長度低於指定長度就補空白
private String getLayoutString(String temp,int spaceNum)
{
int stringLength=temp.length();
if(stringLength>spaceNum)
{ //: 字串長度大於指定長度直接回傳
return temp;
}
else
{
//: 字串長度小於指定長度 補空白
int diffChat=spaceNum-stringLength;
StringBuffer formatString=new StringBuffer();
formatString.append(temp);
for(int i=0;i<diffChat;i++)
{
formatString.append(" ");
}
return formatString.toString();
}
}
發現寫的這個函式相當的吃資源
原本為了排版方便而作的
但是多了這個效能卻大大下降
雖然知道因為裡面又一個for 效能本來就會大為降低的
我原本寫的程式是ArrayList 去存一連串的資訊
後來為了效能跟記憶體的節省改用StringBuffer
而後效能跟的確大幅改善 記憶體也節省很多
但是加了上面的排版用程式結果效能還比原先差
那也就算了 記憶體使用量比沒加那個函式還多兩倍 還高過原本用arraylist的使用量
請問這是為什麼?
是因為memory leak的關係嗎?= =
這個問題有沒有改善的方法
或是java有沒有提供其他實作方式可以達到我那個函式的效果?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.177.161
推
05/09 23:57, , 1F
05/09 23:57, 1F
討論串 (同標題文章)