精华内容
下载资源
问答
  • Java Python 执行效率对比

    千次阅读 2019-09-16 14:55:09
    Python代码开发效率非常高,同样的函数功能,Java需要十几行,Python只要几行,代码数量要远小于Java,这样开发的时间和效率Java高很多。 2 . 代码运行速度 Java是静态语言静态编译的,直接执行,速度上要比Python...

    Java和Python两门语言都是目前非常热门的语言

    优缺点比较

    1 . 代码开发效率

    在这里插入图片描述
    Python代码开发效率非常高,同样的函数功能,Java需要十几行,Python只要几行,代码数量要远小于Java,这样开发的时间和效率比Java高很多。

    2 . 代码运行速度

    在这里插入图片描述

    Java是静态语言静态编译的,直接执行,速度上要比Python快的很多。
    而Python动态类型语言,一边执行一边编译,所以要比Java慢。

    下面针对Java和Python进行最简单的计算效率比较 (计数)

    10万次计数效率

    Java 执行10万次计数 , 消费时间为 1 毫秒
    

    Java 10万次计算

    Python 执行10万次计数 , 消费时间为 10 毫秒
    

    Python 10万次计算

    1000万次计算效率

    Java 执行1000万次计数 , 消费时间为 7 毫秒
    

    Java 1000万次计算

    Python 执行1000万次计数 , 消费时间为 935 毫秒
    

    Python 1000万次计算

    如果针对程序的运行效率有很大的要求,可选择Java 。

    展开全文
  • 为什么说Java程序运行时间越久,执行效率越高?

    问题

    为什么说Java程序运行时间越久,执行效率越高?

    jvm的执行策略

    现在大多数开发环境中都是用是HotSpot虚拟机,而HotSpot虚拟机的默认执行策略是混合式模式的。也就是解释执行和编译执行一起工作。
    这个我们可以通过在终端输入以下指令来查看(笔者使用的是jdk1.8):

    java -version
    

    控制台输出为:

    Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
    Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
    
    

    其中mixed mode就代表的混合执行策略。

    JVM解释执行

    虚拟机将编译好的字节码一行一行地翻译为对应平台的机器码执行顺序执行。代码没有优化,需要花费额外的解释时间,执行速度较慢

    JVM编译执行

    虚拟机以方法为单位,将所属字节码一次性翻译为机器码后执行,代码经过虚拟机优化,执行速度块

    JIT即时编译器

    JIT: Just-In-Time Compiler
    Hot-Spot虚拟机采用即时编译器,会将字节码中热点代码编译成本地机器码,提高执行速度

    热点代码

    包括两种:

    1. 频繁调用的方法
    2. 多次执行的循环体

    热点代码检测机制

    1. 采样:定期检查所有线程jvm栈的栈顶方法
    2. 计数器:每个方法都持有一个计数器,调用一次则累加一次
    3. 基于踪迹热点探测的检测机制(Dalvik虚拟机)

    解释

    由于JVM的混合执行机制,在程序运行的时间够久以后,频繁调用的方法都被编译成了本地机器码,调用效率自然就变高了。
    但是需要注意的是,应用占用的内存也会升高。

    展开全文
  • Java与C#执行效率之不科学比较

    万次阅读 热门讨论 2006-09-15 14:48:00
    中午吃饭,闲来无事,分别用Java和C#实现了一个计算PI值的类,执行次数相同,为了避免一些偶然误差,姑设置了一个比较大的计算次数100000000,1亿次!Java代码如下:import java.util.*;public class CalcPI{ ...

    中午吃饭,闲来无事,分别用Java和C#实现了一个计算PI值的类,执行次数相同,为了避免一些偶然误差,姑设置了一个比较大的计算次数100000000,1亿次!

    Java代码如下:

    import java.util.*;

    public class CalcPI
    {
     public static final int COUNT=100000000;
     public static void main(String[] args)
     {
      long start=System.currentTimeMillis();
      Random random=new Random(start);
      int inside=0;
      for(int i=0;i<COUNT;i++)
      {
       double cx=random.nextDouble();
       double cy=random.nextDouble();
       double distance=Math.sqrt((cx*cx)+(cy*cy));
       if(distance<1.0)
       {
        ++inside;
       }
       
      }
      double pi=4*(double)inside/(double)COUNT;
      long end=System.currentTimeMillis();
      long lastTime=end-start;
      System.out.println ("pi="+pi);
      System.out.println ("所用时间:"+lastTime+"ms");
     }
    }

    C#代码如下:

    using System;

    public class CalcPI
    {
     public const int Count=100000000;
     public static void Main(string[] args)
     {
      DateTime start=DateTime.Now;
      Random random=new Random(start.Millisecond);
      int Inside=0;
      for(int i=0;i<Count;i++)
      {
       double cx=random.NextDouble();
       double cy=random.NextDouble();
       double distance=Math.Sqrt((cx*cx)+(cy*cy));
       if(distance<1.0)
       {
        ++Inside;
       }
      }
      double pi=4*(double)Inside/(double)Count;
      DateTime end=DateTime.Now;
      TimeSpan diff=end-start;
      Console.WriteLine("pi={0}",pi);
      Console.WriteLine("消耗时间:{0}ms",diff.TotalMilliseconds);
     }
      
    }

    最后执行效果的画面:

    执行结果图 

    从这个结果来看,好像在执行浮点运算方面,Java不如C#,不知道代码方面有没有需要改进,让测试更科学、公平的地方。而且好像C#最后的结果也比Java得到的结果更理想。

    展开全文
  • Java代码注释写的多,会影响到编译效率,但是不会影响到执行效率Java代码是先编译成字节码,然后被JVM解释执行的。我做了个实验TimeDemo 类1234567891011121314import java.util.ArrayList; public class ...

    Java代码注释写的多,会影响到编译效率,但是不会影响到执行效率。

    Java代码是先编译成字节码,然后被JVM解释执行的。

    我做了个实验

    TimeDemo 类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import  java.util.ArrayList;
     
    public  class  TimeDemo {
         public  static  void  main(String[] args) {
             long  start = System.currentTimeMillis();
             ArrayList<Integer> list =  new  ArrayList<Integer>();
             for  ( int  i =  0 ; i < 1000000 ; i++) {
                 list.add(i);
             }
             
             long  end =  System.currentTimeMillis(); //获取毫秒
             System.out.println( "本次执行耗费了" +(end-start)+ "毫秒" );
         }
    }

    TimeDemo2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import  java.util.ArrayList;
     
    public  class  TimeDemo2 {
         public  static  void  main(String[] args) {
             long  start = System.currentTimeMillis();
             ArrayList<Integer> list =  new  ArrayList<Integer>();
             for  ( int  i =  0 ; i < 1000000 ; i++) {
                 list.add(i);
             }
             //用java.io生成了很多行的注释,
             //注释
             //注释
             //注释
             //注释
             //注释
             long  end = System.currentTimeMillis();
             System.out.println( "本次执行耗费了" +(end-start)+ "毫秒" );
         }
    }

    运行结果

    当注释行数是1~1万行的时候. 能较快的编译

    当注释行数达到1百万的时候,编译稍微慢一点

    当注释行数达到1千万行的时候, CPU占用100%,卡了进1分钟也没有编译完成,只好强行关闭

    结论:

             简单明了的注释有助于程序猿对代码的读写

            只有当注释行数极大的时候,才会严重的影响编译速度。 但不会影响执行速度

    展开全文
  • 浅谈C++/JAVA/C#运行机制和执行效率

    千次阅读 2018-04-23 00:09:29
    浅谈C++/JAVA/C#运行机制和执行效率 估计有很多同学都对C++/JAVA/C#这三大热门语言的运行机制和执行效率有或多或少的困惑,自己也有,但是经过前期的学习,了解了三者在这两方面的区别,就废话不说了,进入主题吧。...
  • package ... import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; import java.util.concurrent.TimeUnit; /** * 串行Stream和并行(parallel)Stream
  • Java执行效率完全可以比C/C++的好

    千次阅读 2004-11-19 14:04:00
    Java执行效率完全可以比C/C++的好1, 大家都知道现在的JVM大都实现了JIT, 一个class在第一次运行后就被编译成了native code来运行, 等一个server运行了一段时间后,整个application可能都已经编译成二进制代码执行.2...
  • 计算一段代码执行的时间,可以通过该方法获取到起始时间,结束时间,然后计算时间差,最后再进行时间单位的转换~ 二、实现代码 public class Test { public static void main(String[] args) { //方法第一行代码 ...
  • 进程是操作系统分配资源的单位,而线程是独立运行的单位,一般进程由若干个线程组成,这些线程可以同时执行进程地址空间中的代码,而线程拥有自己独立的CPU堆栈和寄存器。一般单CPU操作系统以轮转方式向线程提供时间...
  • C++和java执行浮点计算的效率测试

    千次阅读 2016-01-03 12:51:22
    之前学习的时候从来没有就C++和java执行速度进行测试过,今天想就浮点数运算进行一下测试。 首先测试一下计数器加1亿次需要的时间: C++代码: #include #include using namespace std; const int N=100000000; ...
  • 参数绑定导致java执行查询sql效率

    千次阅读 2014-08-25 20:27:57
    今天在做一个分页查询的时候,发现一个sql在java执行超级慢,原sql的格式大概
  • JAVA执行SQL语句,组合成一条和分开执行,哪个效率高些? 》 问题: 需要做统计表格,统计很多种类型的数据 (如下图) ,因为统计数据过多,导致每次进入此模块时,要等待很久,反映太慢。 分析...
  • Java利用多线程执行SQL减少执行时间提高效率 首先这是个人在实际的项目中使用的代码,部分敏感代码没有上,不过不影响对代码的理解: 1.实现自己的线程 /** * * @author * @date */ package ...
  • JAVA_OPTS 是此执行脚本为运行爪哇虚拟机准备的参数变量。最终会追加在启动 Tomcat 的命令后边。添加的位置不宜大幅度调整。从逻辑上来说,这段代码上边是逐一调整各种运行命令行参数。再往下就是执行过程控制的代码...
  • 5:JAVA,现在的王者,现在大型互联网公司百分百都要用到它,在WEB、移动、物联网、服务器、人工智能、深度学习、科学计算、云计算、大数据等等各大领域都有涉及,不仅仅在于它的跨平台性,更是它的执行效率现在优化...
  • java反射效率及优化

    千次阅读 2016-05-04 15:25:30
    看了些博客,自己试一下并总结,如下:import java.lang.reflect.Method; import java.util.Date;class DemoClass{ public String firstName; private String endName; private Date birthDay; private ...
  • Java执行DOS命令行

    千次阅读 2009-03-17 00:07:00
    Java执行dos命令行用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序模式:...Process process...
  • java执行速度相比较慢的原因

    千次阅读 2016-02-24 15:38:11
    java执行速度上进行了解释,仅供参考,如有错误,望批评指正,谢谢。
  • 在阅读文章之前,请您思考标题的内容:Java是解释执行么?
  • Java核心技术卷】Java的解释执行与编译执行

    千次阅读 多人点赞 2019-02-28 18:23:16
    简化版的过程图示: 一、编译执行和解释执行的一些基本概念: JVM:一种能够运行Java字节码(Java bytecode)的虚拟机。...Java字节码:是Java虚拟机执行的一种指令格式。 解释器:是一种电脑...
  • 多种编程语言执行效率的比较

    万次阅读 2017-07-17 18:29:40
    我们经常用不同种编程语言来完成我们的工作,但是它们的执行效率如何呢,我们通过递归的方式计算斐波那契数列的前40项和来比较。拿来进行比较的编程语言有:C,C#,Java,JavaScript,Python,Lua等。拭目以待吧
  • (计算机的执行效率) for循环的题目十分的简单谁都知道,假如在应聘中遇到这么简单的题目,但就是不同的解决方案就决定了你的去留,这只是一个比喻,因为在应聘中也不可能给你出这么简单的题目。虽然不可能出现,...
  • java打印代码执行耗时

    千次阅读 2019-07-16 19:31:36
    在代码开发中,常常需要看代码的执行效率,必须直观的看到某个循环消耗的多少时间,进而针对性的优化,有两种方式。 1.使用System.currentTimeMillis()方法 打印代码开始的执行时间和结束的时间,中间的时间差就是...
  • Java执行SQL的insert语句

    2015-06-13 09:12:10
    public class JDBC_2 { public static void main(String[] args) { try{ ... String url = "jdbc:mysql:/... 如果执行的是注释中的select语句,就不会报错,按时执行insert语句,就出现问题,请大牛帮帮忙!谢谢!
  • 当materialInformations的长度为十万时,如何提高这段代码的效率? [img=https://img-bbs.csdn.net/upload/201410/28/1414460668_867226.jpg][/img]
  • java中代码执行速度问题

    千次阅读 2016-11-09 18:45:13
    java的代码执行速度问题
  • Java For循环效率测试

    千次阅读 2014-07-29 13:02:45
    很奇怪的结果!!!! 关于java运行效率的一次小测试
  • java测试代码段执行时间

    千次阅读 2016-04-20 15:23:00
    因为遇到效率问题,要看看具体是哪段代码在浪费时间,所有需要下面的2句代码。 long a=System.currentTimeMillis(); //这里放需要测试执行时间的代码段。 System.out.println("\r 执行耗时 : "+(System....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 597,498
精华内容 238,999
关键字:

java执行效率

java 订阅