This is an automated email from the ASF dual-hosted git repository.

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new d5f39a6e54 [Performance](Nereids) refactor code speedup analyze 
(#21458)
d5f39a6e54 is described below

commit d5f39a6e54e41b2fdad921aa1a86452e15396076
Author: jakevin <[email protected]>
AuthorDate: Tue Jul 4 10:59:07 2023 +0800

    [Performance](Nereids) refactor code speedup analyze (#21458)
    
    refactor those code which cost much time.
---
 .../apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java    | 2 +-
 .../java/org/apache/doris/nereids/minidump/NereidsTracer.java     | 7 ++++---
 .../doris/nereids/properties/ChildrenPropertiesRegulator.java     | 2 +-
 .../doris/nereids/properties/EnforceMissingPropertiesHelper.java  | 2 +-
 .../src/main/java/org/apache/doris/statistics/Statistics.java     | 8 +++++---
 5 files changed, 12 insertions(+), 9 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
index f6ae1d6879..d8e79bd80f 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
@@ -317,7 +317,7 @@ public class CostAndEnforcerJob extends Job implements 
Cloneable {
             groupExpression.putOutputPropertiesMap(outputProperty, 
requestProperty);
         }
         this.groupExpression.getOwnerGroup().setBestPlan(groupExpression, 
curTotalCost, requestProperty);
-        
NereidsTracer.logPropertyAndCostEvent(groupExpression.getOwnerGroup().getGroupId().toString(),
+        
NereidsTracer.logPropertyAndCostEvent(groupExpression.getOwnerGroup().getGroupId(),
                 groupExpression.children(), groupExpression.getPlan(), 
requestProperty, curTotalCost);
     }
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/minidump/NereidsTracer.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/minidump/NereidsTracer.java
index 80101dd750..b1ba66ced2 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/minidump/NereidsTracer.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/minidump/NereidsTracer.java
@@ -21,6 +21,7 @@ import org.apache.doris.common.util.DebugUtil;
 import org.apache.doris.common.util.TimeUtils;
 import org.apache.doris.nereids.cost.Cost;
 import org.apache.doris.nereids.memo.Group;
+import org.apache.doris.nereids.memo.GroupId;
 import org.apache.doris.nereids.pattern.Pattern;
 import org.apache.doris.nereids.properties.PhysicalProperties;
 import org.apache.doris.nereids.trees.plans.AbstractPlan;
@@ -99,7 +100,7 @@ public class NereidsTracer {
 
     /** log property and cost pair when doing cost and enforcer task */
     public static void logPropertyAndCostEvent(
-            String groupId, List<Group> children, Plan plan, 
PhysicalProperties requestProperty, Cost cost) {
+            GroupId groupId, List<Group> children, Plan plan, 
PhysicalProperties requestProperty, Cost cost) {
         if (!shouldLog) {
             return;
         }
@@ -120,13 +121,13 @@ public class NereidsTracer {
 
     /** log enforcer event when we need to add enforcer */
     public static void logEnforcerEvent(
-            String groupId, Plan plan, PhysicalProperties inputProperty, 
PhysicalProperties outputProperty) {
+            GroupId groupId, Plan plan, PhysicalProperties inputProperty, 
PhysicalProperties outputProperty) {
         if (!shouldLog) {
             return;
         }
         JSONObject enforcerEventJson = new JSONObject();
         JSONObject enforcerMsg = new JSONObject();
-        enforcerMsg.put("GroupId", groupId);
+        enforcerMsg.put("GroupId", groupId.toString());
         enforcerMsg.put("Plan", ((AbstractPlan) plan).toJson());
         enforcerMsg.put("InputProperty", inputProperty.toString());
         enforcerMsg.put("OutputProperty", outputProperty.toString());
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java
index 862dbb5e2b..bb5ce1eec6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java
@@ -90,7 +90,7 @@ public class ChildrenPropertiesRegulator extends 
PlanVisitor<Boolean, Void> {
     @Override
     public Boolean visitPhysicalHashJoin(PhysicalHashJoin<? extends Plan, ? 
extends Plan> hashJoin,
             Void context) {
-        Preconditions.checkArgument(children.size() == 2, 
String.format("children.size() is %d", children.size()));
+        Preconditions.checkArgument(children.size() == 2, "children.size() != 
2");
         Preconditions.checkArgument(childrenProperties.size() == 2);
         Preconditions.checkArgument(requiredProperties.size() == 2);
         DistributionSpec leftDistributionSpec = 
childrenProperties.get(0).getDistributionSpec();
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
index 146b165d68..bcbfffc0e7 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
@@ -150,7 +150,7 @@ public class EnforceMissingPropertiesHelper {
             PhysicalProperties oldOutputProperty,
             PhysicalProperties newOutputProperty) {
         context.getCascadesContext().getMemo().addEnforcerPlan(enforcer, 
groupExpression.getOwnerGroup());
-        
NereidsTracer.logEnforcerEvent(enforcer.getOwnerGroup().getGroupId().toString(),
 groupExpression.getPlan(),
+        NereidsTracer.logEnforcerEvent(enforcer.getOwnerGroup().getGroupId(), 
groupExpression.getPlan(),
                 oldOutputProperty, newOutputProperty);
         ENFORCER_TRACER.log(EnforcerEvent.of(groupExpression, ((PhysicalPlan) 
enforcer.getPlan()),
                 oldOutputProperty, newOutputProperty));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
index ff889d3edc..cf92df9362 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
@@ -151,9 +151,11 @@ public class Statistics {
 
     private double computeTupleSize() {
         if (tupleSize <= 0) {
-            tupleSize = expressionToColumnStats.values().stream()
-                    .map(s -> s.avgSizeByte).reduce(0D, Double::sum);
-            tupleSize = Math.max(1, tupleSize);
+            double tempSize = 0.0;
+            for (ColumnStatistic s : expressionToColumnStats.values()) {
+                tempSize += s.avgSizeByte;
+            }
+            tupleSize = Math.max(1, tempSize);
         }
         return tupleSize;
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to