在Java中,可以使用以下几种方法来查看程序耗时:
使用System.currentTimeMillis() System.currentTimeMillis()方法返回自1970年1月1日以来的毫秒数。通过在代码执行前后分别调用该方法,然后计算两个时间戳的差值,即可得到程序的运行时间。
```java
long startTime = System.currentTimeMillis();
// 要测试运行时间的程序段
for (int i = 0; i < 1000000; i++) {
Math.pow(i, 2);
}
long endTime = System.currentTimeMillis();
System.out.println("程序运行时间: " + (endTime - startTime) + "ms");
```
使用System.nanoTime()
System.nanoTime()方法返回当前时间的纳秒数。与System.currentTimeMillis()类似,通过在代码执行前后分别调用该方法,然后计算两个时间戳的差值,并将结果转换为毫秒,即可得到程序的运行时间。
```java
long startTime = System.nanoTime();
// 要测试运行时间的程序段
for (int i = 0; i < 1000000; i++) {
Math.pow(i, 2);
}
long endTime = System.nanoTime();
long duration = (endTime - startTime) / 1000000;
System.out.println("程序运行时间: " + duration + "ms");
```
使用AOP(面向切面编程)
通过AOP框架(如Spring AOP)可以在不修改原有代码的情况下,在方法执行前后插入计时代码,从而测量方法的执行时间。
```java
@Around("execution(* com.example.service.*.*(..))")
public Object measureTime(ProceedingJoinPoint joinPoint) throws Throwable {
long startTime = System.currentTimeMillis();
Object result = joinPoint.proceed();
long endTime = System.currentTimeMillis();
System.out.println(joinPoint.getSignature() + " executed in " + (endTime - startTime) + "ms");
return result;
}
```
使用第三方库
可以使用一些第三方库,如JMH(Java Microbenchmark Harness),来进行更精确和复杂的性能测试。
```java
@Benchmark
public void test() {
// 要测试运行时间的代码段
for (int i = 0; i < 1000000; i++) {
Math.pow(i, 2);
}
}
```
建议
简单场景: 对于简单的代码段,可以使用System.currentTimeMillis()或System.nanoTime()进行测量。 复杂场景