【发布时间】:2016-12-01 11:25:31
【问题描述】:
我以下面的例子来说明例子,但请注意它可以是任何其他任务。
for (int i =0; i< 1000; i++){
String a= "world";
Log.d("hello",a);
}
对比
String a="";
a="world";
Log.d("hello",a);
String a="";
a="world";
Log.d("hello",a);
String a="";
a="world";
Log.d("hello",a);
String a="";
a="world";
Log.d("hello",a);
String a="";
a="world";
Log.d("hello",a);
...
//1000 times
让我们忽略可读性和代码质量,只考虑编译程序的性能。 那么哪个更好呢?
【问题讨论】:
-
综合答案是:视情况而定。
-
是,但不能与 IO 相比。
-
如果您想知道,请测试一下。将微优化留给编译器和运行时。不要像这样复制和粘贴代码,因为您认为它的性能更好。除此之外,实践中的性能差异很可能并不重要。
-
非常容易出错,如何在滚动代码时轻松验证是否有 1000 个日志项?你甚至可能达到方法大小限制stackoverflow.com/questions/17422480/…
-
令人惊讶的是,刚学会编写一些代码的人如此担心他们的代码速度,即使他们正在编写的那种代码通常非常琐碎,而且并不真正即使它需要两倍的时间也很重要。这就像开始建造一座摩天大楼并花费数小时思考应该在顶部放置什么样的天线。
标签: java performance