一、以毫秒为单位。
long startTime = System.currentTimeMillis(); //获取开始时间

doSomething(); //测试的代码段

long endTime = System.currentTimeMillis(); //获取结束时间

System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); //输出程序运行时间

二、以纳秒为单位。

long startTime=System.nanoTime(); //获取开始时间

doSomeThing(); //测试的代码段

long endTime=System.nanoTime(); //获取结束时间

System.out.println("程序运行时间: "+(endTime-startTime)+"ns");

时间换算:

1小时=60分钟

1分钟=60秒

1秒=1000毫秒

1毫秒=1000微秒

1微秒=1000纳秒

1纳秒=1000皮秒

我们一java中的拼接字符串为例子

一毫米为例,纳秒用的方式一模一样。

 final int N = 100000;

 //演示低效的方法拼接字符串
long starTime = System.currentTimeMillis();
String str = "*";
for (int i = 0; i < N; i++) {
str += "*"; }
long endTime = System.currentTimeMillis();
System.out.println("+=用时:"+(endTime - starTime)+"毫秒"); //使用StringBuffer进行字符串拼接(自接对内存进行修改) 大约是前面的(+=)1000倍
starTime = System.currentTimeMillis();
StringBuffer str1 = new StringBuffer("*");
for (int i = 0; i < N; i++) {
str1.append("*");//拼接 追加 }
endTime = System.currentTimeMillis();
System.out.println("StringBuffer的append用时:"+(endTime - starTime)+"毫秒"); //StringBuffer 的加强版 StringBuilder java1.5以后 ,StringBuilder效率大约是前面的StringBuffer的4 5 倍
starTime = System.currentTimeMillis();
StringBuilder str2 = new StringBuilder("*");
for (int i = 0; i < N; i++) {
str2.append("*");//拼接 追加 }
endTime = System.currentTimeMillis();
System.out.println("StringBuilder的append用时:"+(endTime - starTime)+"毫秒");

这个程序还不完成请读者自行补充。

运行结果如下(现在知道用+=来拼接字符串是多么的低效了吧);

java中如何测试一段代码的运行时间的更多相关文章

  1. iOS测试一段代码的运行时间

    王刚韧 23:19:26测试一段代码的运行时间 测试一段代码运行花了多久: NSDate* tmpStartData = [NSDate date] ;<#代码#> double delt ...

  2. 使用 Visual Studio Team Test 进行单元测试和java中的测试

    C#中test测试地 方法一. 1.从NUnit官网(http://www.nunit.org/index.php)下载最新版本NUnit,当前版本为NUnit2.5.8. 2.安装后,在VS2008 ...

  3. 【转载】Java中如何写一段内存泄露的程序 & ThreadLocal 介绍和使用

    可以参考这段文章: link A1:通过以下步骤可以很容易产生内存泄露(程序代码不能访问到某些对象,但是它们仍然保存在内存中): 上文中提到了使用ThreadLocal造成了内存泄露,但是写的不清不楚 ...

  4. java中静态变量,静态代码块,静态方法,实例变量,匿名代码块等的加载顺序

    转自:http://blog.csdn.net/mrzhoug/article/details/51581994 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普 ...

  5. 1.JAVA中使用JNI调用C++代码学习笔记

    Java 之JNI编程1.什么是JNI? JNI:(Java Natibe Inetrface)缩写. 2.为什么要学习JNI?  Java 是跨平台的语言,但是在有些时候仍然是有需要调用本地代码 ( ...

  6. Java中字节流的总结及代码练习

    Java中的字节流 在描述字节流时,先知道什么是流 流可以分为:输入流和输出流 输入流和输出流 示意图: 字节流读取内容:二进制,音频,视频 优缺点:可以保证视频音频无损,效率低,没有缓冲区 字节流可 ...

  7. C#计算一段代码的运行时间

    第一种方法利用System.DateTime.Now: static void SubTest() { DateTime beforDT = System.DateTime.Now; //耗时巨大的代 ...

  8. Java中简单测试FastDFS的文件上传

    pom.xml文件内容如下: <dependencies> <!-- fastdfs --> <dependency> <groupId>org.cso ...

  9. java中分页效果的实现代码

    首先是将分页所需的一些个资源 ,抽象出一个javabean对象-PageBean: 先把需要分页的数据或是记录都查询出来 存入一个集合类里如List或是Vector, 然后利用其sublist(int ...

随机推荐

  1. JSP 9大内置对象以及作用

    1.HttpServletRequest的 request对象作用:代表请求对象,用来接收客户端通过http协议连接传输到服务器端的数据. 2.HttpServletResponse的response ...

  2. (转)kafka 详解

    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建(转) 问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的 ...

  3. 综述类文章(Peng 等)阅读笔记Cross-media analysis and reasoning: advances and directions

    综述类文章 Cross-media analysis and reasoning: advances and directions Yu-xin PENG et al. Front Inform Te ...

  4. 从xml中返回的对象,和new 返回的对象时不同的。

    public BigDecimal getTax() { return tax == null ? BigDecimal.ZERO : tax; } 这是自定义的一个类 对null 做出了处理. 但是 ...

  5. java集合类型源码解析之ArrayList

    前言 作为一个老码农,不仅要谈架构.谈并发,也不能忘记最基础的语言和数据结构,因此特开辟这个系列的文章,争取每个月写1~2篇关于java基础知识的文章,以温故而知新. 如无特别之处,这个系列文章所使用 ...

  6. php - ftp 上传文件到远程服务器

    ccentos7服务器 ======================== 一.安装vsftpd及ftp命令 yum install vsftpd -y yum install ftp -y 二.vsf ...

  7. 【Oracle/Java】向三张表各插入百万数据,共用时18分3秒,平均每张表6分钟

    三张表DDL如下: CREATE TABLE tb01 ( "ID" ,) not null primary key, "NAME" NVARCHAR2() n ...

  8. 2019.06.17课件:[洛谷P1310]表达式的值 题解

    P1310 表达式的值 题目描述 给你一个带括号的布尔表达式,其中+表示或操作|,*表示与操作&,先算*再算+.但是待操作的数字(布尔值)不输入. 求能使最终整个式子的值为0的方案数. 题外话 ...

  9. vue---vue2.x自定义plugin,给vue添加全局方法,原型上增加全局方法

    1. 自定义plugin.js export default{ install(Vue,options); { Vue.prototype.toStringTwo=(str)=>( ('0000 ...

  10. java说明文档制作

    A:对工具类加入文档注释 B:通过javadoc命令生成说明书 * @author(提取作者内容) * @version(提取版本内容) * javadoc -d 指定的文件目录 -author -v ...