`
caoxudong818
  • 浏览: 45770 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

循环计算中看到的小问题

    博客分类:
  • java
阅读更多
    今天一同事说到java的运行效率是js的10倍。吾深感好奇,差这么多吗?遂写个小程序试一下,程序只是循环加1,但是在运行过程中会有执行时间大大增加的时候出现,无论java或是js都是这样。搞不清究竟是什么原因,请高人指点。

    先贴上本机配置。
    Intel(R) Core(TM)2 Quard CPU
    Q8400 @ 2.66GHz
    2.66 GHz , 1.98 GB 的内存。

    Java版本
   
    E:\Workspace\java\test>java -version
    java version "1.6.0_26"
    Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
    Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
    


    浏览器使用了chrome12和chrome8的两个版本。

    先上代码。

   
    <input type="button" value="click" onclick="test() ;">
<br>
<div id="testDiv"></div>
<script type="text/javascript">
    var i=0,j=0,k=0;
    var resultStr = null ;
    var beginTime = 0 ;
    var endTime = 0 ;
    var interval = 0 ;
    var testDiv = document.getElementById("testDiv") ;
    function test(){
        for(i=0;i<1000;i++){
            beginTime = new Date().getTime() ;
            for(j=0;j<100000;j++){
                k++
            }
            endTime = new Date().getTime() ;
            interval = endTime - beginTime ;
            resultStr = "cost " + interval + " milliseconds" ;
            testDiv.innerHTML = testDiv.innerHTML + resultStr + "<br>" ;
        }
    }
</script>
    


    然后是Java代码。
   
public class Test {

    public static void main(String[] args) {
        int i=0,j=0,k=0;
        long beginTime=0,endTime=0,interval=0 ;
        StringBuilder result = new StringBuilder() ;
        for(i=0;i<1000;i++){
            beginTime = System.currentTimeMillis() ;
            for(j=0;j<1000000;j++){
                k++ ;
            }
            endTime = System.currentTimeMillis() ;
            interval = endTime - beginTime ;
            result.append("cost ") ;
            result.append(interval) ;
            result.append(" milliseconds") ;
            System.out.println(result.toString()) ;
            result.delete(0,result.length()) ;
        }
       
    }

}
    


    然后是执行结果,先是java的:
   
cost 0 milliseconds
cost 0 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 15 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
    


    js的执行结果:
    chrome12的执行结果
   
cost 14 milliseconds
cost 14 milliseconds
cost 14 milliseconds
cost 10 milliseconds
cost 4 milliseconds
cost 3 milliseconds
cost 3 milliseconds
cost 4 milliseconds
cost 4 milliseconds
cost 3 milliseconds
cost 4 milliseconds
cost 3 milliseconds
cost 3 milliseconds
cost 4 milliseconds
    



    chrome8的执行结果
   
cost 15 milliseconds
cost 15 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 15 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 15 milliseconds
cost 0 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds


    问题:为什么java和chrome8在运行过程中会有计算时间突然加长的时候?

    坐等高人。   
分享到:
评论

相关推荐

    c语言循环结构经典算法.pdf

    C语言是一种广泛使用的计算机编程...通过这些示例,可以看到C语言中循环结构的多样化使用,以及它们在解决各种问题时的强大能力。掌握循环结构对于编程人员来说至关重要,因为循环是实现程序逻辑重复执行的基础工具。

    死循环的恶搞小程序

    例如,在VBScript(Visual Basic Script)中,我们可能会看到如下简单的死循环示例: ```vbscript Do While True ' 这里没有执行任何可以改变循环条件的语句 Loop ``` 在这个例子中,`Do While True` 创建了一个...

    计算整形数组中第k小的数

    在IT行业的算法领域,计算整形数组中第k小的数是一个经典的编程问题,它涉及到排序、查找等基础知识,是衡量一个程序员基本功的重要指标之一。本文将深入解析这一知识点,包括其背后的算法原理、实现方法以及优化...

    循环赛日程表(分治递归法)

    通过以上分析,我们可以看到,循环赛日程表问题的解决依赖于分治递归策略,它将大问题分解为小问题,并通过递归的方式逐一解决。在实际编程中,我们还需要考虑如何有效地存储和处理这些信息,以生成最终的赛程表。这...

    最小费用最大流问题matlab实现

    最小费用最大流问题是在网络流问题中的一个重要分支,它不仅要求找到一个从源点到汇点的最大流,而且还要求这个流的总费用最低。这类问题在物流配送、任务调度等多个领域有着广泛的应用。 #### 二、最小费用最大流...

    数学计算工具程序设计

    在这个名为"数学计算工具程序设计"的项目中,我们看到使用C语言来实现这些功能。C语言是一种底层、高效的编程语言,特别适合编写这样的计算密集型程序。 首先,让我们详细讨论阶乘计算。阶乘是一个正整数n的所有...

    JDK1.8中ConcurrentHashMap中computeIfAbsent死循环bug.docx

    在JDK 1.8版本中,`ConcurrentHashMap`中的`computeIfAbsent`方法存在一个潜在的死循环问题。这个bug主要出现在并发操作时,当`ConcurrentHashMap`需要进行扩容并且`computeIfAbsent`正在执行计算的过程中,可能会...

    运用计算机完成有趣的问题PPT学习教案.pptx

    在这个PPT学习教案中,我们看到了几个与计算机编程相关的问题,这些问题旨在帮助学习者更好地理解和应用计算机知识。 首先,我们看到一个与“杨辉三角形”(Pascal's Triangle)相关的问题。杨辉三角形是一种二维...

    旅行商问题优化计算

    在TSP问题中,连续型Hopfield网络通过模拟神经元间的相互作用来寻找最佳路径。 3. **Matlab实现**: - 使用`dist`函数计算城市间距离。 - 设定迭代参数,并通过循环迭代更新神经元状态,以逐步逼近最优解。 - ...

    Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例

    在编程中,最大公约数的计算尤其重要,因为它可以作为算法优化的手段,例如在约分分数、计算同余方程、优化组合数学中的多项式等问题中发挥作用。而最小公倍数则常用于求解周期性问题或找到两个数的公共周期。 在...

    【步步高】2013-2014学年高中数学 1.1.3第2课时循环结构基础过关训练 新人教B版必修3

    - 第12题要求设计一个搜索及格成绩的算法,体现了循环结构在解决实际问题中的应用。 - 第13题的国际象棋棋盘麦粒问题,是一个经典的指数增长问题,可通过循环结构计算出总麦粒数,展示了指数增长的威力。 通过...

    python循环结构(二)实验报告.doc

    通过解决实际问题,实验旨在帮助学生深入理解循环在编程中的应用。 1. **计算圆周率π的近似值**: 使用`for`循环,按照给定的公式`π=2×(1/1 - 1/3 + 1/5 - 1/7 + ...)`计算π的近似值。循环1000次,每次迭代...

    数值计算方法中的典型方法使用c++代码实现

    在c++中,我们可以通过编写递归或循环结构,将区间分成若干个子区间,分别用辛普森公式计算每个子区间的积分,最后将结果累加得到总积分。 3. 列主元消元法(Gauss-Elimination with Partial Pivoting): 这是一...

    蒸汽动力循环与制冷循环习题.docx

    通过这些习题的分析和解答,我们能够清晰地看到蒸汽动力循环与制冷循环在原理上的异同,以及在工程应用中的具体考量和优化方向。此外,这些习题也强调了环保和能源效率的重要性,表明了工程技术在进步的同时,需要...

    2020高中数学 1.2.3循环语句每课一练 新人教A版必修3.doc

    - 题目中给出了多个程序段,包括计算序列和、判断循环体执行次数、转换循环类型等,这些例子展示了循环语句在实际问题中的应用。 通过以上讨论,我们可以看到,循环语句是高中数学和计算机科学中的关键概念,不仅...

    2021计算方法上机作业1

    从文件内容中,我们可以看到计算方法相关的知识点,例如数值分析、线性代数、优化算法等。 6. 数据结构:数据结构是计算机科学中的一种基本概念,指的是数据的组织和存储方式。从文件内容中,我们可以看到数据结构...

    循环结构1221.doc

    在理财问题中,我们可以看到循环的三要素如何体现在算法设计中。首先,设定本金(A)、年利率(R)、存款时间(T)等初始状态;接着,定义每个循环周期的计算步骤,如每年本利和的更新(Pn = P(n-1) * (1 + R * 80%)...

    最小表示法

    通过阅读"算法合集之《浅析“最小表示法”思想在字符串循环同构问题中的应用》.ppt",读者可以更直观地理解最小表示法的原理,看到具体的过程图示,以及可能的伪代码展示,进一步加深理解。 总结来说,最小表示法是...

    编程小工具,进制转换,校验计算

    综上所述,"amo的编程小工具集合V1.2.6.exe" 提供了一个全面的平台,涵盖了从基本的进制转换到高级的校验计算和位操作,是程序员日常学习和工作中的得力助手。无论你是初学者还是经验丰富的开发者,这个工具都能帮助...

    网络布线,最小生成树,prim算法

    综上所述,Prim算法在解决网络最优布线问题中发挥着关键作用,通过不断寻找局部最优解来构建整体的最小生成树,确保网络布线的高效性和成本效益。在实际应用中,结合GUI界面,这一算法可以提供直观且易操作的解决...

Global site tag (gtag.js) - Google Analytics