zoukankan      html  css  js  c++  java
  • 对"for循环中尽量减少对变量的重复计算"提出质疑

    在下面的一篇文章:

    26个提升java性能需要注意的地方

    的"13. 尽量减少对变量的重复计算"中描述的:

    我有以下的质疑!!如果有不对的地方,请大家拍砖...^_^

    先看看我做的测试程序:

    ===========================================================

    代码部分:

    ===========================================================

    /java_test/src/com/b510/fors/TestFor.java

     1 package com.b510.fors;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 /**
     7  * 13. 尽量减少对变量的重复计算?
     8  * @author hongten<br>
     9  * <a href="http://www.admin10000.com/document/1070.html">26个提升java性能需要注意的地方</a>
    10  */
    11 public class TestFor {
    12 
    13     public static void main(String[] args) {
    14         int length = 10000;
    15         List<String> list = new ArrayList<String>();
    16         
    17         for(int i = 0,len = length;i< len;i++){
    18             list.add(String.valueOf(i));
    19         }
    20         
    21         long testFor = testFor(list);
    22         long testFors = testFors(list);
    23         
    24         
    25         System.out.println("the result is following....");
    26         System.out.println("提倡方法 -- > testfor : "+testFor);
    27         System.out.println("================");
    28         System.out.println("不提倡方法 -- > testFors : "+testFors);
    29     }
    30     
    31     /**
    32      * <a href="http://www.admin10000.com/document/1070.html">26个提升java性能需要注意的地方</a><br>
    33      * 中提倡的方法
    34      * @param list
    35      * @return
    36      */
    37     public static long testFor(List<String> list){
    38         long begin = System.currentTimeMillis();
    39         for(int i =0,len = list.size();i< len;i++){
    40             System.out.println(list.get(i).toString());
    41         }
    42         long end = System.currentTimeMillis();
    43         return (end - begin);
    44     }
    45     
    46     /**
    47      * <a href="http://www.admin10000.com/document/1070.html">26个提升java性能需要注意的地方</a><br>
    48      * 中不提倡的方法
    49      * @param list
    50      * @return
    51      */
    52     public static long testFors(List<String> list){
    53         long begin = System.currentTimeMillis();
    54         for(int i = 0;i<list.size();i++){
    55             System.out.println(list.get(i).toString());
    56         }
    57         long end = System.currentTimeMillis();
    58         return (end - begin);
    59     }
    60 }

    运行效果:

    a.

    1 int length = 10;

    b.

    1 int length = 100;

    c.

    1 int length = 1000;

    d.

    1 int length = 10000;

    总结:测试了很多数据,表示

    1 for(int i = 0;i<list.size();i++)

    要比

    1 for(int i =0,len = list.size();i< len;i++)

    程序要快...

    ========================================================

    More reading,and english is important.

    I'm Hongten

     

    大哥哥大姐姐,觉得有用打赏点哦!多多少少没关系,一分也是对我的支持和鼓励。谢谢。
    Hongten博客排名在100名以内。粉丝过千。
    Hongten出品,必是精品。

    E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

    ========================================================

  • 相关阅读:
    Visual Studio 2010使用Visual Assist X的方法
    SQL Server 2000 评估版 升级到 SQL Server 2000 零售版
    双网卡多网络单主机同时访问
    开发即过程!立此纪念一个IT新名词的诞生
    delphi dxBarManager1 目录遍历 转为RzCheckTree2树
    5320 软件集合
    delphi tree 从一个表复制到另一个表
    DELPHI 排课系统课表
    长沙金思维 出现在GOOGLE的 金思维 相关搜索里啦!!
    如何在DBGrid的每一行前加一个单选框?
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_fors.html
Copyright © 2011-2022 走看看