zoukankan      html  css  js  c++  java
  • for 循环的效率

    1、单层for循环

    long start =System.currentTimeMillis();
    int sum=0;
    for(int i=0;i<1000000000;i++)
    {
    sum=1+1;
    }
    long end = System.currentTimeMillis();
    System.out.println(end-start); //输出时间差为3-5之间

    2、双层for循环

    long start =System.currentTimeMillis();
    int sum=0;
    for(int i=0;i<1;i++)
    {
    for(int j=0;j<1000000000;j++)
    sum=1+1;
    }
    long end = System.currentTimeMillis();
    System.out.println(end-start); //输出时间差为3-8之间

    3、双层for循环

    long start =System.currentTimeMillis();
    int sum=0;
    for(int i=0;i<1000000000;i++)
    {
    for(int j=0;j<1;j++)
    sum=1+1;
    }
    long end = System.currentTimeMillis();
    System.out.println(end-start);//输出时间差为1000以上

    比较1、2、3中三种情况下,消耗情况

     i<10000

    变量 实例化 初始化 比较 自增
    i 1 1 10000 10000

    i<1      j<10000

    变量 实例化 初始化 比较 自增
    i 1 1 1 1
    j 1 1 10000 10000

    i<10000    j<1

    变量 实例化 初始化 比较 自增
    i 1 1 10000 10000
    j 10000 10000 1 1

    以上可见,优化for循环时,可以把实例化和初始化放在循环之外进行。

    修改如下:

    1long start =System.currentTimeMillis();
    int i=0;
    int j=0;
    int sum=0;
                    for(;i<1000000000;i++)
    {
    sum=1+1;
    }
                    long end = System.currentTimeMillis();
    System.out.println(end-start);   //输出4
    2long start =System.currentTimeMillis();
    int i=0;
    int j=0;
    int sum=0;
    for(;i<1000000000;i++)
    {
    for(;j<1;j++)
    sum=1+1;
    }
                    long end = System.currentTimeMillis();
    System.out.println(end-start);   //输出5
    3long start =System.currentTimeMillis();
    int i=0;
    int j=0;
    int sum=0;
    for(;i<1;i++)
    {
    for(;j<1000000000;j++)
    sum=1+1;
    }
                    long end = System.currentTimeMillis();
    System.out.println(end-start);   //输出5
  • 相关阅读:
    kafka注册异常
    Android基于XMPP Smack Openfire下学习开发IM(五)连接断开重连
    openfire维持在线状态,监听消息
    openfire ping的smack解决方案(维持在线状态)
    openfire聊天记录插件
    openfire 发送 接受 注册 广播 好友列表 在线状态
    maven仓库中心mirrors配置多个下载中心(执行最快的镜像)
    开发openfire 消息拦截器插件PacketInterceptor
    Openfire注册流程代码分析
    linux centOS6 nexus 开启自动启动
  • 原文地址:https://www.cnblogs.com/kisshappyboy/p/10785566.html
Copyright © 2011-2022 走看看