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操作。


  • 相关阅读:
    水浒卡
    百家姓
    祖宗十八代
    《三国演义》里到底描写了多少个人物,你知道吗?
    通用路由封装简介和基本配置方法
    DHCP Snooping的实现
    结构化的网络故障检测与排除方法
    结构化网络维护
    4000汉字无一重字
    (1)centos7 安装与分区
  • 原文地址:https://www.cnblogs.com/2589-spark/p/3482806.html
Copyright © 2011-2022 走看看