我通常使用 junit 或 ngunit 来感受运行时。它将告诉您测试在您的 ide 中运行与控制台分开需要多长时间。
或者您可以像这样记录开始时间和结束时间:
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));
doStuff();
date = new Date();
System.out.println(dateFormat.format(date));
或者您可以记录执行时间:
long start = System.currentTimeMillis();
System.out.println("Going to call the method.");
doStuff();
System.out.println("Method execution completed.");
long elapsedTime = System.currentTimeMillis() - start;
System.out.println("Method execution time: " + elapsedTime + " milliseconds.");
如果您想在其他地方(即文件)写入而不是在控制台中将它们全部混合,您可以使用 log4j
logger.info(dateFormat.format(date);
如果你想变得更高级,你可以使用 AOP 切入点来记录方法执行的开始和结束时间,例如使用 spring aop。代码来自这里:http: //veerasundar.com/blog/2010/01/spring-aop-example-profiling-method-execution-time-tutorial/
@Aspect
public class BusinessProfiler {
@Pointcut("execution(* com.veerasundar.spring.aop.*.*(..))")
public void businessMethods() { }
@Around("businessMethods()")
public Object profile(ProceedingJoinPoint pjp) throws Throwable {
long start = System.currentTimeMillis();
System.out.println("Going to call the method.");
Object output = pjp.proceed();
System.out.println("Method execution completed.");
long elapsedTime = System.currentTimeMillis() - start;
System.out.println("Method execution time: " + elapsedTime + " milliseconds.");
return output;
}
}
打印到控制台可能是一个瓶颈,因为它会阻塞 io - 为什么要在控制台上打印这么多?这个测试有价值吗?