我了一個小的代碼作爲一個例子使用:在Java函數內部或外部操作數據,是否會影響性能?
public class Main {
public static void main(String[] args) {
String hugeString = "a,a,a,a";
splitOutside(hugeString.split(","));
splitInside(hugeString);
}
private static void splitInside(String string) {
String splitData[] = string.split(",");
for (int i = 0; i < splitData.length; i++){
System.out.print(splitData[i]);
}
System.out.println("");
}
public static void splitOutside(String[] splitData) {
for (int i = 0; i < splitData.length; i++){
System.out.print(splitData[i]);
}
System.out.println("");
}
}
我有兩個不同的功能,和splitOutside
splitInside
,在這種情況下。
在內存使用情況方面,這些優於其他嗎?將分割函數內的字符串幫助垃圾收集器?
正如我所說的,這只是一個很小的例子,真正的代碼有巨大的字符串需要拆分,並且每秒都會收到很多這樣的字符串。所以從長遠來看,這種差異可能是顯而易見的(這是一個需要超過100小時的ON的軟件)。
它會使用一種方法或其他方法有所作爲嗎?
更新:
這個問題是不一樣的java how expensive is a method call。
我不是問一個方法的調用是否很昂貴,我在問函數String.split();
在函數內部還是外部的調用有什麼區別。
更新2:
,如果我有這樣的麼?它會不同嗎?
while ((hugeString = br.readLine()) != null) {
splitOutside(hugeString.split(","));
splitInside(hugeString);
}
我忘了提,我不斷地從JVM課外閱讀在(幾乎)無限循環(分裂會發生2-10次秒)。
除非你打算多次拆分數據,我可以看到沒有區別 –
我這樣做它每秒2-10次(使用不同的字符串)超過100小時。 2-10,因爲它取決於其他軟件的輸入。 – Tuzane
可能重複[java多少錢是一個方法調用](http://stackoverflow.com/questions/6495030/java-how-expensive-is-a-method-call) – xenteros