You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by GitBox <gi...@apache.org> on 2018/08/09 09:49:23 UTC

[GitHub] peng-yongsheng closed pull request #1536: optimize code structure to economize computing resources

peng-yongsheng closed pull request #1536: optimize code structure to economize computing resources
URL: https://github.com/apache/incubator-skywalking/pull/1536
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/global/std/ResponseTimeDistributionSpanListener.java b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/global/std/ResponseTimeDistributionSpanListener.java
index ea14849fb..e467d5244 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/global/std/ResponseTimeDistributionSpanListener.java
+++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/global/std/ResponseTimeDistributionSpanListener.java
@@ -73,15 +73,16 @@ public void parseFirst(SpanDecorator spanDecorator, SegmentCoreInfo segmentCoreI
     }
 
     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;
         }
     }
 
diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/test/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/global/std/ResponseTimeDistributionSpanListenerTestCase.java b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/test/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/global/std/ResponseTimeDistributionSpanListenerTestCase.java
index 3a16c5753..8a8ddbff6 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/test/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/global/std/ResponseTimeDistributionSpanListenerTestCase.java
+++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/test/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/global/std/ResponseTimeDistributionSpanListenerTestCase.java
@@ -42,6 +42,7 @@ public void testStep() {
         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);
diff --git a/apm-collector/apm-collector-configuration/collector-configuration-define/src/main/java/org/apache/skywalking/apm/collector/configuration/service/IResponseTimeDistributionConfigService.java b/apm-collector/apm-collector-configuration/collector-configuration-define/src/main/java/org/apache/skywalking/apm/collector/configuration/service/IResponseTimeDistributionConfigService.java
index 7cec4c441..5a6d25e8c 100644
--- a/apm-collector/apm-collector-configuration/collector-configuration-define/src/main/java/org/apache/skywalking/apm/collector/configuration/service/IResponseTimeDistributionConfigService.java
+++ b/apm-collector/apm-collector-configuration/collector-configuration-define/src/main/java/org/apache/skywalking/apm/collector/configuration/service/IResponseTimeDistributionConfigService.java
@@ -28,4 +28,12 @@
     int getResponseTimeStep();
 
     int getCountOfResponseTimeSteps();
+
+    /**
+     * Equals to getResponseTimeStep() * getCountOfResponseTimeSteps() ,just for economizes computing resources
+     *
+     * @return
+     */
+    int getTotalTimeOfResponseTimeSteps();
+
 }
diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ResponseTimeDistributionConfigService.java b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ResponseTimeDistributionConfigService.java
index cc50be2d8..87ed2a2c3 100644
--- a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ResponseTimeDistributionConfigService.java
+++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ResponseTimeDistributionConfigService.java
@@ -25,10 +25,12 @@
 
     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 ResponseTimeDistributionConfigService(int responseTimeStep, int countOfRe
     @Override public int getCountOfResponseTimeSteps() {
         return countOfResponseTimeSteps;
     }
+
+    @Override
+    public int getTotalTimeOfResponseTimeSteps() {
+        return totalTimeOfResponseTimeSteps;
+    }
 }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services