zoukankan      html  css  js  c++  java
  • 关于程序执行效率的一些想法

    今天写程序的时候我考虑到在一个for循环中加上if判断的时候效率的问题(循环上万、十万等数量级的时候),一开始的想法很简单,就是能不加就不加,尽管不知道会影响多少的效率,但是不加总会比加上要好。正好今晚超哥在,我就请教了一下超哥,

    其实很简单,主要看这个循环的有效循环次数,神马是有效循环次数呢比如

    int sum = 0;
    for(int i=0; i<list.size(); i++){
        if(list(i)%2==0){
            sum +=list(i);
        }  
    }
    在上个循环中,会循环1万次,但是你会发现有效循环是只有5k次的,也就是说我们执行了另外5k次的无效循环,这样的时间就是相比下明显的浪费了。
    假如说我们在制作这个List的时候他就是全部是%2==0的数据,那么就不必要去循环无意义的5k次了。
    可能刚才的代码不规范说的也不太清楚。但是大体能明白那个意思。
    其实循环是挺消耗CPU的一种操作,所以我们在每次做循环的时候要尽量保证每次循环都是有意义的。尽量减少无意义循环的次数。
    还有就是I/O读写操作,对于I/O操作是挺消耗时间的,所以在循环的时候能避免I/O操作就避免。不然你会发现CPU占用很低,但是硬盘狂闪的情况,因为计算机在疯狂的进行I/O操作。


  • 相关阅读:
    将view添加到地图覆盖物
    将eclipse的编码改成UTF-8,默认是GBK
    Android调用系统关机与重启功能
    Android中preference标签的使用
    linux中convert用法
    RookeyFrame在线新增模块
    RookeyFrame2.0发布,UI重构
    Rookey.Frame v1.0 视频教程发布了
    Rookey.Frame企业级快速开发框架开源了
    RookeyFrame模块初始化
  • 原文地址:https://www.cnblogs.com/2589-spark/p/3482806.html
Copyright © 2011-2022 走看看