我了一个小的代码作为一个例子使用:在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