You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by yu...@apache.org on 2021/12/10 14:03:19 UTC

[rocketmq] branch develop updated: [ISSUE 3585] [Part I] Avoid unnecessary StringBuffer resizing and String Formatting (#3619)

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

yuzhou pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new dcbf276  [ISSUE 3585] [Part I] Avoid unnecessary StringBuffer resizing and String Formatting (#3619)
dcbf276 is described below

commit dcbf276e919709a160464fdf89dd8439dd9e0a77
Author: haozhijie9527 <47...@users.noreply.github.com>
AuthorDate: Fri Dec 10 22:03:08 2021 +0800

    [ISSUE 3585] [Part I] Avoid unnecessary StringBuffer resizing and String Formatting (#3619)
    
    Co-authored-by: haozhijie <ha...@163.com>
---
 .../rocketmq/store/stats/BrokerStatsManager.java   | 42 +++++++++++++++-------
 1 file changed, 29 insertions(+), 13 deletions(-)

diff --git a/store/src/main/java/org/apache/rocketmq/store/stats/BrokerStatsManager.java b/store/src/main/java/org/apache/rocketmq/store/stats/BrokerStatsManager.java
index b9e11fd..466bf5e 100644
--- a/store/src/main/java/org/apache/rocketmq/store/stats/BrokerStatsManager.java
+++ b/store/src/main/java/org/apache/rocketmq/store/stats/BrokerStatsManager.java
@@ -156,24 +156,24 @@ public class BrokerStatsManager {
     }
 
     public void incQueuePutNums(final String topic, final Integer queueId) {
-        this.statsTable.get(QUEUE_PUT_NUMS).addValue(buildStatsKey(topic, String.valueOf(queueId)), 1, 1);
+        this.statsTable.get(QUEUE_PUT_NUMS).addValue(buildStatsKey(topic, queueId), 1, 1);
     }
 
     public void incQueuePutNums(final String topic, final Integer queueId, int num, int times) {
-        this.statsTable.get(QUEUE_PUT_NUMS).addValue(buildStatsKey(topic, String.valueOf(queueId)), num, times);
+        this.statsTable.get(QUEUE_PUT_NUMS).addValue(buildStatsKey(topic, queueId), num, times);
     }
 
     public void incQueuePutSize(final String topic, final Integer queueId, final int size) {
-        this.statsTable.get(QUEUE_PUT_SIZE).addValue(buildStatsKey(topic, String.valueOf(queueId)), size, 1);
+        this.statsTable.get(QUEUE_PUT_SIZE).addValue(buildStatsKey(topic, queueId), size, 1);
     }
 
     public void incQueueGetNums(final String group, final String topic, final Integer queueId, final int incValue) {
-        final String statsKey = buildStatsKey(buildStatsKey(topic, String.valueOf(queueId)), group);
+        final String statsKey = buildStatsKey(topic, queueId, group);
         this.statsTable.get(QUEUE_GET_NUMS).addValue(statsKey, incValue, 1);
     }
 
     public void incQueueGetSize(final String group, final String topic, final Integer queueId, final int incValue) {
-        final String statsKey = buildStatsKey(buildStatsKey(topic, String.valueOf(queueId)), group);
+        final String statsKey = buildStatsKey(topic, queueId, group);
         this.statsTable.get(QUEUE_GET_SIZE).addValue(statsKey, incValue, 1);
     }
 
@@ -194,11 +194,27 @@ public class BrokerStatsManager {
         this.statsTable.get(GROUP_GET_NUMS).addValue(statsKey, incValue, 1);
     }
 
-    public String buildStatsKey(String prefix, String suffix) {
-        StringBuffer strBuilder = new StringBuffer();
-        strBuilder.append(prefix);
-        strBuilder.append("@");
-        strBuilder.append(suffix);
+    public String buildStatsKey(String topic, String group) {
+        StringBuilder strBuilder = new StringBuilder(topic.length() + group.length() + 1);
+        strBuilder.append(topic).append("@").append(group);
+        return strBuilder.toString();
+    }
+
+    public String buildStatsKey(String topic, int queueId) {
+        StringBuilder strBuilder = new StringBuilder(topic.length() + 5);
+        strBuilder.append(topic).append("@").append(queueId);
+        return strBuilder.toString();
+    }
+
+    public String buildStatsKey(String topic, int queueId, String group) {
+        StringBuilder strBuilder = new StringBuilder(topic.length() + group.length() + 6);
+        strBuilder.append(topic).append("@").append(queueId).append("@").append(group);
+        return strBuilder.toString();
+    }
+
+    public String buildStatsKey(int queueId, String topic, String group) {
+        StringBuilder strBuilder = new StringBuilder(topic.length() + group.length() + 6);
+        strBuilder.append(queueId).append("@").append(topic).append("@").append(group);
         return strBuilder.toString();
     }
 
@@ -208,7 +224,7 @@ public class BrokerStatsManager {
     }
 
     public void incGroupGetLatency(final String group, final String topic, final int queueId, final int incValue) {
-        final String statsKey = String.format("%d@%s@%s", queueId, topic, group);
+        final String statsKey = buildStatsKey(queueId, topic, group);
         this.statsTable.get(GROUP_GET_LATENCY).addValue(statsKey, incValue, 1);
     }
 
@@ -236,13 +252,13 @@ public class BrokerStatsManager {
 
     public void recordDiskFallBehindTime(final String group, final String topic, final int queueId,
         final long fallBehind) {
-        final String statsKey = String.format("%d@%s@%s", queueId, topic, group);
+        final String statsKey = buildStatsKey(queueId, topic, group);
         this.momentStatsItemSetFallTime.getAndCreateStatsItem(statsKey).getValue().set(fallBehind);
     }
 
     public void recordDiskFallBehindSize(final String group, final String topic, final int queueId,
         final long fallBehind) {
-        final String statsKey = String.format("%d@%s@%s", queueId, topic, group);
+        final String statsKey = buildStatsKey(queueId, topic, group);
         this.momentStatsItemSetFallSize.getAndCreateStatsItem(statsKey).getValue().set(fallBehind);
     }