代码性能差距 2013-08-14 shanhestm 代码一:for (int i = 0; i < 100; i++) { Object a = new Object() ; //....}代码二:Object a ;for (int i = 0; i < 100; i++) { a = new Object() ; //....}代码一和代码二之间的性能有差距吗?差距代码?
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() ; //....}代码二:List a;for (int i = 0; i < 100; i++) { a = s<i>.getList() ; //....}
xianghx 2013-08-14 18:20 性能应该一样吧,占内存就不知道了哪个多点,但指针也就32/64位,不会太大。编译器会优化,a压栈,函数调用完后,变量会释放内存。我去测一下如果是C一般会选第二种,JAVA C#之类的用第一种的多。
shanhestm 2013-08-14 21:34 2013-08-14 18:36 "@xianghx "的内容我测了下,生成10亿对象也没有什么区别,所以用第一种就好了,这种好理解,用的人也多。 ... 我也感觉是,但是不是很肯定!