提交 39abdb69 编写于 作者: 鲍伟华 提交者: wu-sheng

optimize code structure to economize computing resources (#1536)

* 优化代码结构,减少不必要的计算,节省计算资源

* 优化代码结构,减少不必要的计算,节省计算资源
上级 114c2f7a
......@@ -73,15 +73,16 @@ public class ResponseTimeDistributionSpanListener implements FirstSpanListener {
}
int getStep(int duration) {
int countOfResponseTimeSteps = configService.getResponseTimeStep() * configService.getCountOfResponseTimeSteps();
int responseTimeStep = configService.getResponseTimeStep();
int countOfResponseTimeSteps = configService.getCountOfResponseTimeSteps();
int totalTimeOfResponseTimeSteps = configService.getTotalTimeOfResponseTimeSteps();
if (duration > countOfResponseTimeSteps) {
return countOfResponseTimeSteps / responseTimeStep;
if (duration > totalTimeOfResponseTimeSteps) {
return countOfResponseTimeSteps;
} else if (duration <= responseTimeStep) {
return 0;
} else {
return (int)Math.ceil((double)duration / (double)responseTimeStep) - 1;
return (int) Math.ceil((double) duration / (double) responseTimeStep) - 1;
}
}
......
......@@ -42,6 +42,7 @@ public class ResponseTimeDistributionSpanListenerTestCase {
IResponseTimeDistributionConfigService service = Mockito.mock(IResponseTimeDistributionConfigService.class);
Mockito.when(service.getResponseTimeStep()).thenReturn(50);
Mockito.when(service.getCountOfResponseTimeSteps()).thenReturn(40);
Mockito.when(service.getTotalTimeOfResponseTimeSteps()).thenReturn(2050);
ModuleDefine module = Mockito.mock(ModuleDefine.class);
Whitebox.setInternalState(module, "loadedProviders", loadedProviders);
......
......@@ -28,4 +28,12 @@ public interface IResponseTimeDistributionConfigService extends Service {
int getResponseTimeStep();
int getCountOfResponseTimeSteps();
/**
* Equals to getResponseTimeStep() * getCountOfResponseTimeSteps() ,just for economizes computing resources
*
* @return
*/
int getTotalTimeOfResponseTimeSteps();
}
......@@ -25,10 +25,12 @@ public class ResponseTimeDistributionConfigService implements IResponseTimeDistr
private final int responseTimeStep;
private final int countOfResponseTimeSteps;
private final int totalTimeOfResponseTimeSteps;
public ResponseTimeDistributionConfigService(int responseTimeStep, int countOfResponseTimeSteps) {
this.responseTimeStep = responseTimeStep;
this.countOfResponseTimeSteps = countOfResponseTimeSteps + 1;
this.totalTimeOfResponseTimeSteps = this.responseTimeStep * this.countOfResponseTimeSteps;
}
@Override public int getResponseTimeStep() {
......@@ -38,4 +40,9 @@ public class ResponseTimeDistributionConfigService implements IResponseTimeDistr
@Override public int getCountOfResponseTimeSteps() {
return countOfResponseTimeSteps;
}
@Override
public int getTotalTimeOfResponseTimeSteps() {
return totalTimeOfResponseTimeSteps;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册