This is an automated email from the ASF dual-hosted git repository.
xvrl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new 1061faa prefer string concatenation over String.format in performance
sensitive code (#10997)
1061faa is described below
commit 1061faa6ba97106aec79d48aac158e88faa965c8
Author: Xavier Léauté <[email protected]>
AuthorDate: Tue Mar 16 22:06:26 2021 -0700
prefer string concatenation over String.format in performance sensitive
code (#10997)
String.format relies on regex parsing, which makes these calls expensive
at higher request volumes.
---
.../org/apache/druid/java/util/http/client/NettyHttpClient.java | 9 ++++-----
.../java/org/apache/druid/java/util/http/client/Request.java | 5 ++---
.../org/apache/druid/query/spec/SpecificSegmentQueryRunner.java | 3 +--
.../src/main/java/org/apache/druid/client/DirectDruidClient.java | 4 ++--
.../org/apache/druid/server/AsyncQueryForwardingServlet.java | 3 +--
5 files changed, 10 insertions(+), 14 deletions(-)
diff --git
a/core/src/main/java/org/apache/druid/java/util/http/client/NettyHttpClient.java
b/core/src/main/java/org/apache/druid/java/util/http/client/NettyHttpClient.java
index ea41e7d..25adef4 100644
---
a/core/src/main/java/org/apache/druid/java/util/http/client/NettyHttpClient.java
+++
b/core/src/main/java/org/apache/druid/java/util/http/client/NettyHttpClient.java
@@ -113,7 +113,7 @@ public class NettyHttpClient extends AbstractHttpClient
final URL url = request.getUrl();
final Multimap<String, String> headers = request.getHeaders();
- final String requestDesc = StringUtils.format("%s %s", method, url);
+ final String requestDesc = method + " " + url;
if (log.isDebugEnabled()) {
log.debug("[%s] starting", requestDesc);
}
@@ -422,13 +422,12 @@ public class NettyHttpClient extends AbstractHttpClient
}
}
- return StringUtils.format("%s:%s", url.getHost(), port);
+ return url.getHost() + ":" + port;
}
private String getPoolKey(URL url)
{
- return StringUtils.format(
- "%s://%s:%s", url.getProtocol(), url.getHost(), url.getPort() == -1 ?
url.getDefaultPort() : url.getPort()
- );
+ return url.getProtocol() + "://" + url.getHost() + ":"
+ + (url.getPort() == -1 ? url.getDefaultPort() : url.getPort());
}
}
diff --git
a/core/src/main/java/org/apache/druid/java/util/http/client/Request.java
b/core/src/main/java/org/apache/druid/java/util/http/client/Request.java
index 8fe5d0f..b012be5 100644
--- a/core/src/main/java/org/apache/druid/java/util/http/client/Request.java
+++ b/core/src/main/java/org/apache/druid/java/util/http/client/Request.java
@@ -22,7 +22,6 @@ package org.apache.druid.java.util.http.client;
import com.google.common.base.Supplier;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
-import org.apache.druid.java.util.common.StringUtils;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBufferFactory;
import org.jboss.netty.buffer.HeapChannelBufferFactory;
@@ -165,8 +164,8 @@ public class Request
public Request setBasicAuthentication(String username, String password)
{
- final String base64Value = base64Encode(StringUtils.format("%s:%s",
username, password));
- setHeader(HttpHeaders.Names.AUTHORIZATION, StringUtils.format("Basic %s",
base64Value));
+ final String base64Value = base64Encode(username + ":" + password);
+ setHeader(HttpHeaders.Names.AUTHORIZATION, "Basic " + base64Value);
return this;
}
diff --git
a/processing/src/main/java/org/apache/druid/query/spec/SpecificSegmentQueryRunner.java
b/processing/src/main/java/org/apache/druid/query/spec/SpecificSegmentQueryRunner.java
index 0cea0db..c5cbc54 100644
---
a/processing/src/main/java/org/apache/druid/query/spec/SpecificSegmentQueryRunner.java
+++
b/processing/src/main/java/org/apache/druid/query/spec/SpecificSegmentQueryRunner.java
@@ -20,7 +20,6 @@
package org.apache.druid.query.spec;
import com.google.common.base.Supplier;
-import org.apache.druid.java.util.common.StringUtils;
import org.apache.druid.java.util.common.guava.Accumulator;
import org.apache.druid.java.util.common.guava.Sequence;
import org.apache.druid.java.util.common.guava.SequenceWrapper;
@@ -69,7 +68,7 @@ public class SpecificSegmentQueryRunner<T> implements
QueryRunner<T>
final Thread currThread = Thread.currentThread();
final String currThreadName = currThread.getName();
- final String newName = StringUtils.format("%s_%s_%s", query.getType(),
query.getDataSource(), query.getIntervals());
+ final String newName = query.getType() + "_" + query.getDataSource() + "_"
+ query.getIntervals();
final Sequence<T> baseSequence = doNamed(
currThread,
diff --git
a/server/src/main/java/org/apache/druid/client/DirectDruidClient.java
b/server/src/main/java/org/apache/druid/client/DirectDruidClient.java
index 23b9f04..75a2a45 100644
--- a/server/src/main/java/org/apache/druid/client/DirectDruidClient.java
+++ b/server/src/main/java/org/apache/druid/client/DirectDruidClient.java
@@ -159,8 +159,8 @@ public class DirectDruidClient<T> implements QueryRunner<T>
final JavaType queryResultType = isBySegment ?
toolChest.getBySegmentResultType() : toolChest.getBaseResultType();
final ListenableFuture<InputStream> future;
- final String url = StringUtils.format("%s://%s/druid/v2/", scheme, host);
- final String cancelUrl = StringUtils.format("%s://%s/druid/v2/%s", scheme,
host, query.getId());
+ final String url = scheme + "://" + host + "/druid/v2/";
+ final String cancelUrl = url + query.getId();
try {
log.debug("Querying queryId[%s] url[%s]", query.getId(), url);
diff --git
a/server/src/main/java/org/apache/druid/server/AsyncQueryForwardingServlet.java
b/server/src/main/java/org/apache/druid/server/AsyncQueryForwardingServlet.java
index acf80f2..24e29e4 100644
---
a/server/src/main/java/org/apache/druid/server/AsyncQueryForwardingServlet.java
+++
b/server/src/main/java/org/apache/druid/server/AsyncQueryForwardingServlet.java
@@ -32,7 +32,6 @@ import org.apache.druid.guice.annotations.Smile;
import org.apache.druid.guice.http.DruidHttpClientConfig;
import org.apache.druid.java.util.common.DateTimes;
import org.apache.druid.java.util.common.IAE;
-import org.apache.druid.java.util.common.StringUtils;
import org.apache.druid.java.util.common.jackson.JacksonUtils;
import org.apache.druid.java.util.emitter.EmittingLogger;
import org.apache.druid.java.util.emitter.service.ServiceEmitter;
@@ -376,7 +375,7 @@ public class AsyncQueryForwardingServlet extends
AsyncProxyServlet implements Qu
static String makeURI(String scheme, String host, String requestURI, String
rawQueryString)
{
return JettyUtils.concatenateForRewrite(
- StringUtils.format("%s://%s", scheme, host),
+ scheme + "://" + host,
requestURI,
rawQueryString
);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]