System.currentTimeMillis()

使用System.currentTimeMillis(),获取系统当前时间(按ms计量),类型为long。

在测试代码段开始前打上第一个时间戳,使用System.currentTimeMillis()获取当前时间;在结束部分再打一个时间戳,再次使用System.currentTimeMillis()获取当前时间。

end-start 即为所求的运行用时。

ms已经很精确了 (Java还有支持ns的API但其实系统未必支持) ,但即使使用ns进行百千万次的运算,也很可能测出耗时0ms,所以想测试就不要去测那种没什么时耗的例子,找点典型的耗时应用算法去做测试。

Test1

我们将简单算术加法进行100W次,结果竟然耗时0ms。

public class GetTimeTest {public static void main(String[] args) {long start = System.currentTimeMillis();long counter = 0;for (int i = 0; i < 1000000; i++) {counter += i;}long end = System.currentTimeMillis();System.out.println(end-start);}
}

测试结果

0

Test2

我们将一个字符串连接100W次(1M次),测一下时间。
哪怕我们只用了空串,然而字符串连接这种行为本身就很消耗时间了,所以必然有个结果。

public class GetTimeTest {public static void main(String[] args) {long start = System.currentTimeMillis();String str = "";for (int i = 0; i < 1000000; i++) {str += "";}long end = System.currentTimeMillis();System.out.println(end-start);}
}

测试结果

47

Test3

我们把Test2的连接次数再翻10倍,达到1000W次:

public class GetTimeTest {public static void main(String[] args) {long start = System.currentTimeMillis();String str = "";for (int i = 0; i < 10000000; i++) {str += "";}long end = System.currentTimeMillis();System.out.println(end-start);}
}

测试结果:

159

总结

打时间戳来测试区间代码段运行时间,可以便于自己开展粗略的性能测试,是很重要的知识,一定要掌握啊!

【Java】获取Java代码段运行毫秒数的策略相关推荐

  1. java中测代码段运行时间及内存的方法

    1.测运行时间 long startTime = System.currentTimeMillis(); //获取开始时间 代码段- long endTime = System.currentTime ...

  2. 怎么运行java虚拟机_Java代码如何运行在Java虚拟机中

    我们都知道要运行Java代码就必须要有JRE,也就是Java运行时环境,JRE中包含了Java程序的必需组件,包括Java虚拟机以及Java核心类库,然而运行C++代码则不需要额外的运行时环境,只需要 ...

  3. java——获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示,并不要再运行程序

    获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示,并不要再运行程序 import java.io.File; import java.io.FileInputStream; im ...

  4. java获取cpu核数_vn.py社区精选12 - 策略参数优化,你需要懂得压榨CPU!

    作者:张国平 ​万恶的全局锁 基于物理上的限制,各CPU厂商在核心频率上的比赛已经被多核所取代.为了更有效的利用多核处理器的性能,多线程的编程方式被越来越多地应用到了各类程序中,而随之带来的则是线程间 ...

  5. JAVA 获取java版本号

    JAVA 获取系统配置信息重点内容 System.out.println("java版本号:" + System.getProperty("java.version&qu ...

  6. java获取当前年月日(java获取当前年月日时分秒毫秒)

    java如何获取当前时间 年月日 时分秒 //得到long类型当前时间 long l = System.currentTimeMillis(); //new日期对象 Date date = new D ...

  7. java获取pdf文件的总页数

    1.在pom.xml加入依赖 <dependency>             <groupId>org.apache.pdfbox</groupId>       ...

  8. java获取cookie_JAVA代码模拟获取cookie以及携带cookie

    JAVA代码模拟获取cookie以及携带cookie 去年做android的时候,网络连接没有用类似OKHttp之类的框架,而是完全用jdk自带的api实现,今天不想看书..就把笔记整理一下吧.. 这 ...

  9. JAVA获取当前进程的内存占用数和CPU利用率以及读写字节数并计算统计信息

    通过oshi这个三方库来获取,目前这个最准确. 引入依赖 <dependency><groupId>com.github.oshi</groupId><art ...

最新文章

  1. Java IO的一些思考
  2. java图形界面GUI编程
  3. SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  4. 面试官问:什么是布隆过滤器?
  5. 基于ZooKeeper的分布式Session实现
  6. python就业班 miniweb框架_mini-web框架
  7. 二元随机变量函数的分布
  8. python如何训练图片_Python练习第一题,在图片上加入数字
  9. 配置UIAutomator中的ANT环境报不是内部命令与外部命令
  10. mysql+inser+select_在MySQL中结合INSERT,VALUES和SELECT
  11. python调用程序压缩文件_Python实现文件压缩和解压的示例代码
  12. 20165329 Java实验四 Android程序设计
  13. 回顾:前端模块化和AMD、CMD规范(全)
  14. Java--汽车之家论坛反爬虫破解
  15. ubuntu升级22.04无法启动--ACPI BIOS Error
  16. 基于WEB的网上在线图书商城
  17. Java从入门到精通十一(javaIO流)
  18. balsamiq mockups 3.0破解教程
  19. Python之.loc与.iloc的用法
  20. PanGu STM32MP开发板更新固件

热门文章

  1. POJ Area of Simple Polygons 扫描线
  2. mysql远程连接错误10038--navicat for mysql (10038)
  3. Linq中dbSet 的查询
  4. Unity3d通用工具类之定时触发器
  5. 动态调用链接库(dll) 续
  6. python etree创建xml_Python构建XML树结构的实例教程
  7. java+路径拦截实现_SpringBoot实现拦截器
  8. 在fritzing中怎么导入_电路图制作软件(Fritzing)
  9. Java中String类、字符串常量池、字符串常用方法
  10. 初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、