当前位置:首页 > Java

java如何计时

2026-03-03 22:58:52Java

计时方法

System.currentTimeMillis()
获取当前时间的毫秒数,适用于简单计时场景。计算差值即可得到耗时:

long startTime = System.currentTimeMillis();
// 执行代码
long endTime = System.currentTimeMillis();
long duration = endTime - startTime; // 单位:毫秒

System.nanoTime()
提供纳秒级精度,适合高精度计时需求。注意此方法不保证与系统时间相关:

java如何计时

long startTime = System.nanoTime();
// 执行代码
long endTime = System.nanoTime();
long duration = (endTime - startTime) / 1_000_000; // 转换为毫秒

工具类实现

StopWatch(Spring框架)
Spring提供的计时工具类,支持多任务分段计时:

java如何计时

StopWatch stopWatch = new StopWatch();
stopWatch.start("task1");
// 执行任务1
stopWatch.stop();
stopWatch.start("task2");
// 执行任务2
stopWatch.stop();
System.out.println(stopWatch.prettyPrint());

自定义计时器
通过封装实现复用性更高的计时逻辑:

public class TimerUtil {
    private long start;

    public void start() {
        this.start = System.currentTimeMillis();
    }

    public long stop() {
        return System.currentTimeMillis() - start;
    }
}

多线程计时

Future接口
结合线程池计算异步任务耗时:

ExecutorService executor = Executors.newSingleThreadExecutor();
Future<?> future = executor.submit(() -> {
    // 异步任务代码
});
long start = System.nanoTime();
future.get(); // 阻塞等待完成
long duration = (System.nanoTime() - start) / 1_000_000;

注意事项

  • 避免在循环中频繁创建计时对象,优先复用实例
  • 对于短时间测量(<1ms),推荐使用nanoTime()
  • 多线程环境下确保计时逻辑的线程安全性

标签: java
分享给朋友:

相关文章

java如何打开

java如何打开

安装Java开发环境 下载并安装Java Development Kit (JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH变量正…

java程序如何运行

java程序如何运行

编写Java代码 使用文本编辑器或IDE(如IntelliJ IDEA、Eclipse)编写Java源代码,保存为.java文件。例如: public class HelloWorld {…

java如何连接mysql

java如何连接mysql

连接 MySQL 数据库的基本步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,在 pom.xml 中添加以下依赖: <dependency…

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…

如何学好java编程

如何学好java编程

理解基础概念 掌握Java的基础语法是学习的起点。变量、数据类型、运算符、控制结构(如循环和条件语句)是核心内容。面向对象编程(OOP)的概念(类、对象、继承、多态、封装)是Java的核心,需深入理解…

java下载功能vue实现

java下载功能vue实现

Java 后端文件下载功能实现 后端需提供文件下载的接口,通常使用 HttpServletResponse 实现。以下是一个简单的 Java Spring Boot 示例: @GetMapping(…