我正在尝试获取函数调用所需的时间并将它们放在JMX端口上。我发现yammer适合这个。虽然计数器是直接的,但使用计时器令人困惑。
private Timer executeTimer;
TimerContext timerContext;
obj.timerContext = obj.executeTimer.time();
.
.
.
public void f()
{
//start timer
f2();
//stop timer
//display time difference
}
我知道你们中的一些人看起来太琐碎了,请耐心等待。我是yammer的新手,发现它混淆了哪个函数和哪个类使用。此外,如果您可以告诉我何时使用TimerContext以及何时使用Timer,这将非常有用。
答案 0 :(得分:2)
首先,您需要初始化ExecuteTimer实例。
executeTimer=Metrics.newTimer(CLASSNAME.class, "Metrics_Name", TimeUnit.MILLISECONDS,TimeUnit.SECONDS);
之后,这样做: -
private Timer executeTimer;
TimerContext timerContext;
obj.timerContext = obj.executeTimer.time();
.
.
.
public void f()
{
timerContext = executeTimer.time();//start timer
f2();
timerContext.stop();//stop timer
//All stats are sent to JMX port by default. You can open console to view them
}
为了获得更多内容,这里的实际代码是。