java中如何测试一段代码的运行时间
一、以毫秒为单位。
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中如何测试一段代码的运行时间的更多相关文章
- iOS测试一段代码的运行时间
王刚韧 23:19:26测试一段代码的运行时间 测试一段代码运行花了多久: NSDate* tmpStartData = [NSDate date] ;<#代码#> double delt ...
- 使用 Visual Studio Team Test 进行单元测试和java中的测试
C#中test测试地 方法一. 1.从NUnit官网(http://www.nunit.org/index.php)下载最新版本NUnit,当前版本为NUnit2.5.8. 2.安装后,在VS2008 ...
- 【转载】Java中如何写一段内存泄露的程序 & ThreadLocal 介绍和使用
可以参考这段文章: link A1:通过以下步骤可以很容易产生内存泄露(程序代码不能访问到某些对象,但是它们仍然保存在内存中): 上文中提到了使用ThreadLocal造成了内存泄露,但是写的不清不楚 ...
- java中静态变量,静态代码块,静态方法,实例变量,匿名代码块等的加载顺序
转自:http://blog.csdn.net/mrzhoug/article/details/51581994 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普 ...
- 1.JAVA中使用JNI调用C++代码学习笔记
Java 之JNI编程1.什么是JNI? JNI:(Java Natibe Inetrface)缩写. 2.为什么要学习JNI? Java 是跨平台的语言,但是在有些时候仍然是有需要调用本地代码 ( ...
- Java中字节流的总结及代码练习
Java中的字节流 在描述字节流时,先知道什么是流 流可以分为:输入流和输出流 输入流和输出流 示意图: 字节流读取内容:二进制,音频,视频 优缺点:可以保证视频音频无损,效率低,没有缓冲区 字节流可 ...
- C#计算一段代码的运行时间
第一种方法利用System.DateTime.Now: static void SubTest() { DateTime beforDT = System.DateTime.Now; //耗时巨大的代 ...
- Java中简单测试FastDFS的文件上传
pom.xml文件内容如下: <dependencies> <!-- fastdfs --> <dependency> <groupId>org.cso ...
- java中分页效果的实现代码
首先是将分页所需的一些个资源 ,抽象出一个javabean对象-PageBean: 先把需要分页的数据或是记录都查询出来 存入一个集合类里如List或是Vector, 然后利用其sublist(int ...
随机推荐
- PHP 之CI框架+GatewayWorker+AmazeUI低仿微信聊天网页版
html5开发的仿微信网页版聊天,采用html5+css3+jquery+websocket+amazeui等技术混合架构开发,实现了微信网页版的主要功能. 一.效果图 二.前端参考代码 <!D ...
- LeetCode 第 152 场周赛
一.质数排列(LeetCode-1175) 1.1 题目描述 1.2 解题思路 先统计出1-n中有多少个质数,得到质数个数\(x\),剩下的数\(y = n - x\): 使用排列组合公式得出结果 \ ...
- 纯JS 10分钟 实现图片懒惰加载
知识点: 1:h5 新增选择器 document.querySelectorAll 2:JS 经典,防抖 3:距离判断:getBoundingClientRect 思路:通过浏览器滚动事件, 判断 ...
- 2018-2019-2 网络对抗技术 20165231 Exp9 Web安全基础
实验内容 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF).Webgoat实践下相关实验. 实验过程 WebGoat: Webgoat是OWA ...
- Spring boot 集成Solr
首先安装Solr 集成 ikanalyzer ,可以参考 https://www.cnblogs.com/lick468/p/10867492.html https://www.cnblogs.com ...
- WebService(axis2),整合springmvc
webservice:不同组织或者部门之间互通数据 https://www.cnblogs.com/buggou/p/8183738.html 1 package com.sh.test; 2 3 4 ...
- uboot自定义添加命令
1.添加命令 1.u-boot的命令格式: U_BOOT_CMD(name,maxargs,repeatable,command,”usage”,"help") name:命令的名 ...
- SWT界面刷新
参考文章: https://segmentfault.com/q/1010000002956350 在UI线程sleep等待,是不会刷新界面的. outPrint.setText("其他 ...
- 阶段5 3.微服务项目【学成在线】_day07 课程管理实战_02-我的课程-前端页面与Api说明
我的课程列表使用element 的card组件,如下: 前端页面代码 点击新增到了一个新增课程的页面 新增课程的界面 下面的card是循环遍历的代码 写死的card的静态数据 请求服务端的接口拿到数据 ...
- sublime Text3文件路径提示功能
1>启动sublime Text3编辑器: 2> 点开菜单“preferences”——“package control”: 3>在弹出的下拉框中选择“install package ...