This is an automated email from the ASF dual-hosted git repository.
RongtongJin 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 e18f0d2c2c [ISSUE #10511] Replace Enum.values() loop with static array
lookup in LanguageCode and SerializeType (#10513)
e18f0d2c2c is described below
commit e18f0d2c2c68a800169b9a16ca4e5d2e02bb104c
Author: Jiahua Wang <[email protected]>
AuthorDate: Wed Jun 17 14:10:28 2026 +0800
[ISSUE #10511] Replace Enum.values() loop with static array lookup in
LanguageCode and SerializeType (#10513)
Co-authored-by: wangjiahua.wjh <[email protected]>
---
.../rocketmq/remoting/protocol/LanguageCode.java | 21 +++++++++++++++------
.../rocketmq/remoting/protocol/SerializeType.java | 10 ++++------
2 files changed, 19 insertions(+), 12 deletions(-)
diff --git
a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/LanguageCode.java
b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/LanguageCode.java
index cf43cbab3d..2ae0999285 100644
---
a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/LanguageCode.java
+++
b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/LanguageCode.java
@@ -38,6 +38,19 @@ public enum LanguageCode {
RUST((byte) 12),
NODE_JS((byte) 13);
+ private static final LanguageCode[] BY_CODE;
+ static {
+ LanguageCode[] all = values();
+ int max = 0;
+ for (LanguageCode lc : all) {
+ max = Math.max(max, lc.code & 0xFF);
+ }
+ BY_CODE = new LanguageCode[max + 1];
+ for (LanguageCode lc : all) {
+ BY_CODE[lc.code & 0xFF] = lc;
+ }
+ }
+
private byte code;
LanguageCode(byte code) {
@@ -45,12 +58,8 @@ public enum LanguageCode {
}
public static LanguageCode valueOf(byte code) {
- for (LanguageCode languageCode : LanguageCode.values()) {
- if (languageCode.getCode() == code) {
- return languageCode;
- }
- }
- return null;
+ int idx = code & 0xFF;
+ return idx < BY_CODE.length ? BY_CODE[idx] : null;
}
public byte getCode() {
diff --git
a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/SerializeType.java
b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/SerializeType.java
index b040f8fbb6..9cdacc2fd6 100644
---
a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/SerializeType.java
+++
b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/SerializeType.java
@@ -21,6 +21,8 @@ public enum SerializeType {
JSON((byte) 0),
ROCKETMQ((byte) 1);
+ private static final SerializeType[] BY_CODE = {JSON, ROCKETMQ};
+
private byte code;
SerializeType(byte code) {
@@ -28,12 +30,8 @@ public enum SerializeType {
}
public static SerializeType valueOf(byte code) {
- for (SerializeType serializeType : SerializeType.values()) {
- if (serializeType.getCode() == code) {
- return serializeType;
- }
- }
- return null;
+ int idx = code & 0xFF;
+ return idx < BY_CODE.length ? BY_CODE[idx] : null;
}
public byte getCode() {