代码性能差距

13-08-14 shanhestm
代码一:

for (int i = 0; i < 100; i++) {
	Object a = new Object() ;
	//....
}
<p>

代码二:

Object a ;
for (int i = 0; i < 100; i++) {
	 a = new Object() ;
	//....
}
<p>

代码一和代码二之间的性能有差距吗?差距代码?

xianghx
2013-08-14 14:34
你那样写有什么意义吗?

新建了100个相同的object,还没什么用?

Object a = new Object();

for (int i = 0; i < 100; i++) {

a.method();

}

shanhestm
2013-08-14 16:54
2013-08-14 14:34 "@xianghx

"的内容

你那样写有什么意义吗?

新建了100个相同的object,还没什么用? ...

100应该改成count表示虚数,Object代表实际的业务对象,可能要循环操作业务

shanhestm
2013-08-14 17:12
如果换成这种呢!

代码一:

for (int i = 0; i < count; i++) {
	List a = s[i].getList() ;
	//....
}
<p>

代码二:

List a;
for (int i = 0; i < 100; i++) {
	 a = s[i].getList() ;
	//....
}
<p>

xianghx
2013-08-14 18:20
性能应该一样吧,占内存就不知道了哪个多点,但指针也就32/64位,不会太大。编译器会优化,a压栈,函数调用完后,变量会释放内存。我去测一下

如果是C一般会选第二种,

JAVA C#之类的用第一种的多。

猜你喜欢
2Go 1 2 下一页