optimize code structure to economize computing resources (#1536)
* 优化代码结构,减少不必要的计算,节省计算资源 * 优化代码结构,减少不必要的计算,节省计算资源
This commit is contained in:
parent
114c2f7a42
commit
39abdb69bc
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue