创建自定义Java注释以测量延迟

时间:2019-12-11 05:04:25

标签: java annotations code-generation benchmarking

我们有一个用例来衡量我们代码库中某些关键功能的执行时间。目前,这是通过许多样板代码完成的:

void foo() {
  Stopwatch stopwatch = Stopwatch.createdStarted();
  // actual work...
  Duration elapsed = stopwatch.elapsed();
  logger.log("Time taken for foo(): %s", elapsed);
}

这需要Stopwatch + Logger样板,该样板在我们的代码库中重复很多。使用自定义注释简化此操作是否可行?目标是拥有以下自定义注释,这些注释应隐式执行先前代码所做的事情。

@Timer
void foo() {
  // actual work...
}

这是否在Java注释的能力之内?我已经考虑过为自定义批注实现Processor,但是我坚持如何设置它,以便带批注的“ foo()”调用隐式生成并执行计时器代码。

0 个答案:

没有答案