浏览代码

HDDS-1421. Avoid unnecessary object allocations in TracingUtil

Closes #722
Arpit Agarwal 6 年之前
父节点
当前提交
a9b46c58fe
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/tracing/TracingUtil.java

+ 8 - 4
hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/tracing/TracingUtil.java

@@ -34,6 +34,8 @@ import org.apache.hadoop.hdds.scm.ScmConfigKeys;
  */
  */
 public final class TracingUtil {
 public final class TracingUtil {
 
 
+  private static final String NULL_SPAN_AS_STRING = "";
+
   private TracingUtil() {
   private TracingUtil() {
   }
   }
 
 
@@ -59,12 +61,13 @@ public final class TracingUtil {
    * @return encoded tracing context.
    * @return encoded tracing context.
    */
    */
   public static String exportCurrentSpan() {
   public static String exportCurrentSpan() {
-    StringBuilder builder = new StringBuilder();
     if (GlobalTracer.get().activeSpan() != null) {
     if (GlobalTracer.get().activeSpan() != null) {
+      StringBuilder builder = new StringBuilder();
       GlobalTracer.get().inject(GlobalTracer.get().activeSpan().context(),
       GlobalTracer.get().inject(GlobalTracer.get().activeSpan().context(),
           StringCodec.FORMAT, builder);
           StringCodec.FORMAT, builder);
+      return builder.toString();
     }
     }
-    return builder.toString();
+    return NULL_SPAN_AS_STRING;
   }
   }
 
 
   /**
   /**
@@ -73,11 +76,12 @@ public final class TracingUtil {
    * @return encoded tracing context.
    * @return encoded tracing context.
    */
    */
   public static String exportSpan(Span span) {
   public static String exportSpan(Span span) {
-    StringBuilder builder = new StringBuilder();
     if (span != null) {
     if (span != null) {
+      StringBuilder builder = new StringBuilder();
       GlobalTracer.get().inject(span.context(), StringCodec.FORMAT, builder);
       GlobalTracer.get().inject(span.context(), StringCodec.FORMAT, builder);
+      return builder.toString();
     }
     }
-    return builder.toString();
+    return NULL_SPAN_AS_STRING;
   }
   }
 
 
   /**
   /**