一、以毫秒为单位。
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. 在OpenFOAM中做用户自定义库——编译library【转载】

    转载自:http://openfoam.blog.sohu.com/22041538.html OpenFOAM自己提供的标准类都是以库的形式提供的,并且利用头文件给出了库的应用接口.这样一来,用户的 ...

  2. wireshark新手导航

    本篇教你如何开始使用Wireshark.开始本篇之前,请先已经安装完wireshark 3.0.0. 初始界面 启动wireshark,可以看到程序界面主要由以下几部分组成: 窗口标题-window ...

  3. Navicat Premium 12安装与激活(亲测已成功激活)

    说明:博主所提供的激活文件理论支持Navicat Premium 12.0.16 - 12.0.24简体中文64位,但已测试的版本为Navicat Premium 12.0.22.12.0.23和12 ...

  4. httpencode编码

    httpencode编码 uses System.NetEncoding var s: string := TNetEncoding.URL.Encode('123'); //123 var s2: ...

  5. php-图片加水印和文字

    //************************** 图片加文字 ************************ $dst_path = '11.jpg';//创建图片的实例$dst = ima ...

  6. PHP网络服务

    [Socket] socket_create 用于创建一个Socket socket_bind 用于将IP地址和端口绑定到socket_create 函数所创建的句柄中. socket_listen ...

  7. SpringCloud学习成长之路 五 路由器网关

    在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统.一个简答的微服务系统如下图: ...

  8. spark在windows的配置

    在spark-env.cmd添加一行 FOR /F %%i IN ('hadoop classpath') DO @set SPARK_DIST_CLASSPATH=%%i 修改:log4j.prop ...

  9. php注册自动加载函数

    $autoload_func = function($class) { $class = str_replace('\\', '/', $class); $file_name = dirname(__ ...

  10. 【Leetcode_easy】700. Search in a Binary Search Tree

    problem 700. Search in a Binary Search Tree 参考1. Leetcode_easy_700. Search in a Binary Search Tree; ...