`
caoxudong818
  • 浏览: 44043 次
  • 性别: 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在运行过程中会有计算时间突然加长的时候?

    坐等高人。   
分享到:
评论

相关推荐

    批处理分区非线性最小二乘:当您有大量非线性最小二乘问题,但只有一个模型时,可以加快速度-matlab开发

    但是,您也可以使用优化工具箱求解器中内置的功能 - 允许您使用块对角雅可比矩阵并行解决许多小问题。 例如,假设要求您估计模型的系数y = a1 + a2*exp(a3*x) 这是使用任何非线性回归工具解决的简单问题。 (我推荐...

    A*算法求解八数码问题_C#语言

    若新结点与待扩展的结点重复(位于队列头指针之后),则比较两个结点的估价函数中g的大小,保留较小g值的结点。跳至第五步。 4)如果扩展出的新结点与队列中的结点不重复,则按照它的估价函数f大小将它插入队列中的...

    C 语言编程常见问题解答.chm

    C 语言编程常见问题解答 【作者】[美]Paul S.R. Chisholm 译:张芳妮 吕 波 【出版社】清华大学出版社 C语言编程常见问题解答(目录) 第l章 C语言 1. 1 什么是局部程序块(local block)? 1. 2 可以把变量保存...

    Scratch数据计算 第十五届蓝桥杯Scratch编程选拔赛真题源码

    Scratch数据计算 第十五届蓝桥杯Scratch编程选拔赛真题源码 十进制整数转换成二进制整数:...期待小朋友们相互交流学习,有什么问题,建议或者意见可以直接给博主留言,或者私下,博主看到后会第一时间给到您相应的回复

    《你必须知道的495个C语言问题》

    《你必须知道的495个C语言问题》以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预...

    Altium Designer Beta 19.0.10完整版安装包+安装教程+和谐文件

    修复了.PrjPCB文件中克隆变体复制UniqueID导致具有相同足迹的备用零件的无限ECO循环参数的错误。 28304 更新登录下拉菜单UI以提供所有可用的托管内容服务器。 28482 减少和优化系统注册表的查询数量(BC:9106)。 ...

    你必须知道的495个C语言问题

    第1章 声明和初始化 ...6.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中有多少个元素呢? 第7章 内存分配 基本的内存分配问题 7.1 为什么这段代码不行?char*answer;printf("Typesomething...

    C语言FAQ 常见问题列表

    C 语言常见问题集 原著:Steve Summit 翻译:朱群英, 孙 云 修订版 0.9.4, 2005年6月23日 版权所有 © 2005 * 目录 * 1. 前言 * 2. 声明和初始化 o 2.1 我如何决定使用那种整数类型? o 2.2 64 位机上的 ...

    动态规划 ppt演示

    动态规划的实质是分治思想和解决冗余,因此,动态规划是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。 动态规划的适用条件 1.最优化原理 若...

    华为编程开发规范与案例

    1 逻辑类问题(A类)-指设计、编码中出现的计算正确性和一致性、程序逻辑控制等方面出现的问题,在系统中起关键作用,将导致软件死机、功能正常实现等严重问题; 接口类问题(B类)-指设计、编码中出现的函数和...

    谈计算机应用基础课程建设.docx

    目前学生在中学已经学会了许多计算机使用基础,在计算机应用基础中学到的知识在后续课程用不到,在专业中急需的技能却没有见到"。针对专业的计算机应用基础课程内容,不仅需有计算机基础知识,而且要包含学生所学...

    汇编语言课程设计报告 电子表

    该系统实现了与电脑中的时间同步的效果,当用户在运行这个程序的时候会看到此电子钟的现实时间与用户电脑中的时间是同步的!这就是次系统最主要的功能,当然,在运行期间如果用户不需要此电子钟的显示了,可以按下...

    你必须知道的495个C语言问题(PDF)

    2.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外 部数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域 的对齐方式? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.11...

    LINGO软件的学习

    例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。 单 位 销地 运 价 产地 B1 B2 B3 B4 B5 B6 B7 B8 产量 A1 6 2 6 7 4 2 5 9 60 A2 4 9 5 3 8 5 8 2 55 A3 5 2 1 9 7 4 3 3 51 A4 7...

    数据采集实验报告.doc

    在程序框图中添加while循环结构,将读取VI和运算程序放在循环中,并创建一个停止按 钮,作为while循环的退出条件。 在程序框图中添加DAQmx清楚任务VI和错误处理的VI,连接好相对应的数据线。完成后的 程序框图如下...

    大学计算机专业毕业总结.doc

    但是我确没有付出相应的努力,这之中就有那种很奇怪的心理在做怪-- 我总觉得这些东西学不好。我对数学相关的课程产生了极大的畏惧心理,无法用心去学 习。另一方面也没有主动去做一些编程练习。 最后虽然这一年是熬...

    易佳工艺软件

    2010/1/29 11.0.6.0 1.有手工夹条时,速度慢的问题。 元宵节快乐,你吃元宵了吗? 2010/1/29 11.0.5.0 1. 编辑表达式中,输入法不会被切换掉。 ...2010/1/29 11.0.4.0 ...1. 后整尺寸表中,尺码的顺序从大到小排列.

    大学计算机专业毕业总结(2).doc

    但是我确没有付出相应的努力,这之中就有那种很奇怪的心理在做怪-- 我总觉得这些东西学不好。我对数学相关的课程产生了极大的畏惧心理,无法用心去学 习。另一方面也没有主动去做一些编程练习。 最后虽然这一年是熬...

Global site tag (gtag.js) - Google Analytics