
正文
java代码耗时分布 java耗时计算
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java代码如何优化?从哪些方面入手?分析?
1)尽量指定类、方法的final修饰符。带有final修饰符的类是不可派生的,Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,此举能够使性能平均提高50%。
2)尽量重用对象。由于Java虚拟机不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理,因此生成过多的对象将会给程序的性能带来很大的影响。
3)尽可能使用局部变量。调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如静态变量、实例变量等,都在堆中创建速度较慢。
4)慎用异常。异常对性能不利,只要有异常被抛出,Java虚拟机就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。异常只能用于错误处理,不应该用来控制程序流程。
5)乘法和除法使用移位操作。用移位操作可以极大地提高性能,因为在计算机底层,对位的操作是最方便、最快的,但是移位操作虽然快,可能会使代码不太好理解,因此最好加上相应的注释。
6)尽量使用HashMap、ArrayList、StringBuilder,除非线程安全需要,否则不推荐使用 Hashtable、Vector、StringBuffer,后三者由于使用同步机制而导致了性能开销。
尽量在合适的场合使用单例。使用单例可以减轻加载的负担、缩短加载的时间、提高加载的效率,但并不是所有地方都适用于单例。
相关问答
Q1: java如何计算程序运行时间
第一种是以毫秒为单位计算java代码耗时分布的。
[java] view plain copy
//伪代码
long startTime=System.currentTimeMillis(); //获取开始时间
doSomeThing(); //测试java代码耗时分布的代码段
long endTime=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间java代码耗时分布: "+(end-start)+"ms");
第二种是以纳秒为单位计算的。
[java] view plain copy
//伪代码
long startTime=System.nanoTime(); //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.nanoTime(); //获取结束时间
System.out.println("程序运行时间java代码耗时分布: "+(end-start)+"ns");
包含所需的包: import java.lang.System;
Q2: 有没有办法查看java代码每一步所花的时间
在一条代码前调用currentTimeMillis()方法 之后再调用一次currentTimeMillis()两个时间都记下来 再相减
Q3: java代码运行时要消耗多少时间
java代码运行时要消耗多少时间的测量方法:
定义一个起始时间:
long start = System.currentTimeMillis();
//这里是你要执行的程序块。。。。
定义一个结束时间
long end = System.currentTimeMillis();
程序快执行耗时=start-end;
Q4: Java 多线程和单线程效率比较,最好是能上代码,我使用了多线程发现耗时更多,求大神解释!
单线程比多线程更快。你的测试代码只是用了CPU资源。因为多线程需要处理线程的开销,开销多了自然没有单线程快。
多线程是为了更充分的利用计算机的资源。比如网络,IO,CPU...如果你在for循环里加入一个磁盘写入操作,多线程就会比单线程快了
Q5: java 反射在并发下为什么比串行耗时高?
由于反射涉及动态解析的类型,因此无法执行某些 Java 虚拟机优化。 因此,反射操作的性能比它们的非反射对应物慢,并且应该避免在性能敏感的应用程序中经常调用的代码部分中。
如果涉及到多线程访问,那必然会给这个类自动加锁,所以线程之间产生切换,会有额外的时间消耗
关于java代码耗时分布和java耗时计算的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







