现在的位置: 首页 > 综合 > 正文

一个for循环的效率

2013年08月01日 ⁄ 综合 ⁄ 共 850字 ⁄ 字号 评论关闭

之前和一个老程序员聊天。有些杂七杂八的新的

android部分:

activity尽量少用,多去创建fragment或者自定义widget。activity之间类似进程之间的通信,尤其是activity很多的时候,activity栈就会释放最底层的activity,如果程序健壮性不够,返回到之前的activity就会崩溃。


从上个话题引出。如果全用widget的放入到activity的话,就会引起内存突然增多,在移动端是致命的,很多时候会直接crash。解决方案1,苦逼的方法,自己在代码里面一个一个new出来新对象,这样内存慢慢增多,解决方案2,多利用fragment


再从上个话题引出。既然多利用fragment,就要尽量使得fragment变得比较纯粹,当然也有很多人喜欢将各种逻辑放入到fragment中,这样做使得fragment很庞大,需要activity给与很多支持。最好的思路是:将fragment看成某个控件。activity是处理fragment的逻辑区。遵循规则:MVC

例如:fragment有个listview需要访问网络数据。1.fragment自己访问网络数据,放入listview,2.listview其他方法扔给activity。这个时候是将fragment看成有数据的一个界面。


编程通用部分:

for循环

效率最慢的是for(i=0;i<xx.size();i++){};原因 1:i++某次都会创建一个临时对象,用这个临时对象去处理逻辑内容.2:i<xx.size()原因下面说

for(i=0;i>0;i--){} 这个方法比上面方法高明的地方在于i>0,因为0是计算机寄存器的某个标示位,可以直接判断,不用像上面那个取个size,再来判断

for(i=0;i<xx.size();++i){} 这个是避免了生成临时对象。直接用i本身去计算逻辑代码。比以上两种效率都会高一些。

自然延伸出来第四种: 

for(i=0;i>0;--i){}这个循环还没有自己测试。预估性格会更好些。 

抱歉!评论已关闭.