You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ch...@apache.org on 2018/08/20 15:41:30 UTC
[flink] branch master updated: [FLINK-10082][metrics][slf4j]
Provide initial size to StringBuilder
This is an automated email from the ASF dual-hosted git repository.
chesnay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 7ae291c [FLINK-10082][metrics][slf4j] Provide initial size to StringBuilder
7ae291c is described below
commit 7ae291c1ab3a394998aa08b1047726897aad45d4
Author: Chesnay Schepler <ch...@apache.org>
AuthorDate: Mon Aug 20 17:41:27 2018 +0200
[FLINK-10082][metrics][slf4j] Provide initial size to StringBuilder
---
.../java/org/apache/flink/metrics/slf4j/Slf4jReporter.java | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/flink-metrics/flink-metrics-slf4j/src/main/java/org/apache/flink/metrics/slf4j/Slf4jReporter.java b/flink-metrics/flink-metrics-slf4j/src/main/java/org/apache/flink/metrics/slf4j/Slf4jReporter.java
index 5efac30..124efe2 100644
--- a/flink-metrics/flink-metrics-slf4j/src/main/java/org/apache/flink/metrics/slf4j/Slf4jReporter.java
+++ b/flink-metrics/flink-metrics-slf4j/src/main/java/org/apache/flink/metrics/slf4j/Slf4jReporter.java
@@ -42,6 +42,9 @@ public class Slf4jReporter extends AbstractReporter implements Scheduled {
private static final Logger LOG = LoggerFactory.getLogger(Slf4jReporter.class);
private static final String lineSeparator = System.lineSeparator();
+ // the initial size roughly fits ~150 metrics with default scope settings
+ private int previousSize = 16384;
+
@VisibleForTesting
Map<Gauge<?>, String> getGauges() {
return gauges;
@@ -72,7 +75,10 @@ public class Slf4jReporter extends AbstractReporter implements Scheduled {
@Override
public void report() {
- StringBuilder builder = new StringBuilder();
+ // initialize with previous size to avoid repeated resizing of backing array
+ // pad the size to allow deviations in the final string, for example due to different double value representations
+ StringBuilder builder = new StringBuilder((int) (previousSize * 1.1));
+
builder
.append(lineSeparator)
.append("=========================== Starting metrics report ===========================")
@@ -134,6 +140,8 @@ public class Slf4jReporter extends AbstractReporter implements Scheduled {
.append("=========================== Finished metrics report ===========================")
.append(lineSeparator);
LOG.info(builder.toString());
+
+ previousSize = builder.length();
}
@Override