You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tubemq.apache.org by "Neo Yang (Jira)" <ji...@apache.org> on 2020/06/06 15:58:00 UTC

[jira] [Updated] (TUBEMQ-222) Optimized code: Unnecessary boxing/unboxing conversion

     [ https://issues.apache.org/jira/browse/TUBEMQ-222?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Neo Yang updated TUBEMQ-222:
----------------------------
    Description: 
If you just want to extract the unboxed primitive values,  calling the static parseXXX(...) method will be more efficient than valueOf(...).

In the Integer.valueOf(String xxx) source code, it also calls the parseInt(...) method to parse the primitive value.
{code:java}
//java.lang.Integer

public static Integer valueOf(String s) throws NumberFormatException {
 return Integer.valueOf(parseInt(s, 10));
}{code}
In the following files, I think we can optimize it:

_(latest master-branch #132 - commit:1aab3c4)_
{code:java}
org/apache/tubemq/corebase/policies/FlowCtrlRuleHandler.java:626
org/apache/tubemq/corebase/policies/FlowCtrlRuleHandler.java:633
org/apache/tubemq/server/broker/BrokerServiceServer.java:1210
org/apache/tubemq/server/broker/msgstore/MessageStore.java:562
org/apache/tubemq/server/broker/msgstore/MessageStore.java:564
org/apache/tubemq/server/broker/msgstore/MessageStore.java:566
org/apache/tubemq/server/broker/msgstore/MessageStore.java:568
org/apache/tubemq/server/common/aaaserver/SimpleCertificateBrokerHandler.java:88
org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:104-105
org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:127-128
org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:151
org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:174
org/apache/tubemq/server/common/utils/WebParameterUtils.java:367
org/apache/tubemq/server/common/utils/WebParameterUtils.java:369
org/apache/tubemq/server/common/utils/WebParameterUtils.java:371
org/apache/tubemq/server/common/utils/WebParameterUtils.java:373
org/apache/tubemq/server/master/balance/DefaultLoadBalancer.java:722
org/apache/tubemq/server/master/balance/DefaultLoadBalancer.java:727
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:264
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:274
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:291
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:308
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:325
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:342
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFlowCtrlEntity.java:189
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:292
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:302
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:319
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:336
org/apache/tubemq/server/tools/BdbGroupAdmin.java:70
{code}
I also found an unnecessary 'String.valueOf()' call.

_org/apache/tubemq/server/broker/web/BrokerAdminServlet.java:284_
{code:java}
inputTopicName = String.valueOf(inputTopicName).trim();
{code}
 

  was:
If you just want to extract the unboxed primitive values, 
calling the static parseXXX(...) method will be more efficient than valueOf(...).

In the Integer.valueOf(String xxx) source code, it also calls the parseInt(...) method to parse the primitive value.
{code:java}
//java.lang.Integer

public static Integer valueOf(String s) throws NumberFormatException {
 return Integer.valueOf(parseInt(s, 10));
}{code}
In the following files, I think we can optimize it:

_(latest master-branch #132 - commit:1aab3c4)_
{code:java}
org/apache/tubemq/corebase/policies/FlowCtrlRuleHandler.java:626
org/apache/tubemq/corebase/policies/FlowCtrlRuleHandler.java:633
org/apache/tubemq/server/broker/BrokerServiceServer.java:1210
org/apache/tubemq/server/broker/msgstore/MessageStore.java:562
org/apache/tubemq/server/broker/msgstore/MessageStore.java:564
org/apache/tubemq/server/broker/msgstore/MessageStore.java:566
org/apache/tubemq/server/broker/msgstore/MessageStore.java:568
org/apache/tubemq/server/common/aaaserver/SimpleCertificateBrokerHandler.java:88
org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:104-105
org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:127-128
org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:151
org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:174
org/apache/tubemq/server/common/utils/WebParameterUtils.java:367
org/apache/tubemq/server/common/utils/WebParameterUtils.java:369
org/apache/tubemq/server/common/utils/WebParameterUtils.java:371
org/apache/tubemq/server/common/utils/WebParameterUtils.java:373
org/apache/tubemq/server/master/balance/DefaultLoadBalancer.java:722
org/apache/tubemq/server/master/balance/DefaultLoadBalancer.java:727
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:264
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:274
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:291
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:308
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:325
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:342
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFlowCtrlEntity.java:189
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:292
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:302
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:319
org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:336
org/apache/tubemq/server/tools/BdbGroupAdmin.java:70
{code}
I also found an unnecessary 'String.valueOf()' call.

_org/apache/tubemq/server/broker/web/BrokerAdminServlet.java:284_
{code:java}
inputTopicName = String.valueOf(inputTopicName).trim();
{code}
 


> Optimized code: Unnecessary boxing/unboxing conversion
> ------------------------------------------------------
>
>                 Key: TUBEMQ-222
>                 URL: https://issues.apache.org/jira/browse/TUBEMQ-222
>             Project: Apache TubeMQ
>          Issue Type: Improvement
>            Reporter: Neo Yang
>            Priority: Normal
>
> If you just want to extract the unboxed primitive values,  calling the static parseXXX(...) method will be more efficient than valueOf(...).
> In the Integer.valueOf(String xxx) source code, it also calls the parseInt(...) method to parse the primitive value.
> {code:java}
> //java.lang.Integer
> public static Integer valueOf(String s) throws NumberFormatException {
>  return Integer.valueOf(parseInt(s, 10));
> }{code}
> In the following files, I think we can optimize it:
> _(latest master-branch #132 - commit:1aab3c4)_
> {code:java}
> org/apache/tubemq/corebase/policies/FlowCtrlRuleHandler.java:626
> org/apache/tubemq/corebase/policies/FlowCtrlRuleHandler.java:633
> org/apache/tubemq/server/broker/BrokerServiceServer.java:1210
> org/apache/tubemq/server/broker/msgstore/MessageStore.java:562
> org/apache/tubemq/server/broker/msgstore/MessageStore.java:564
> org/apache/tubemq/server/broker/msgstore/MessageStore.java:566
> org/apache/tubemq/server/broker/msgstore/MessageStore.java:568
> org/apache/tubemq/server/common/aaaserver/SimpleCertificateBrokerHandler.java:88
> org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:104-105
> org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:127-128
> org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:151
> org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java:174
> org/apache/tubemq/server/common/utils/WebParameterUtils.java:367
> org/apache/tubemq/server/common/utils/WebParameterUtils.java:369
> org/apache/tubemq/server/common/utils/WebParameterUtils.java:371
> org/apache/tubemq/server/common/utils/WebParameterUtils.java:373
> org/apache/tubemq/server/master/balance/DefaultLoadBalancer.java:722
> org/apache/tubemq/server/master/balance/DefaultLoadBalancer.java:727
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:264
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:274
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:291
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:308
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:325
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java:342
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFlowCtrlEntity.java:189
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:292
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:302
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:319
> org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java:336
> org/apache/tubemq/server/tools/BdbGroupAdmin.java:70
> {code}
> I also found an unnecessary 'String.valueOf()' call.
> _org/apache/tubemq/server/broker/web/BrokerAdminServlet.java:284_
> {code:java}
> inputTopicName = String.valueOf(inputTopicName).trim();
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)