Charlie Helin created ZOOKEEPER-2075:
----------------------------------------

             Summary: Utils.bufEquals
                 Key: ZOOKEEPER-2075
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2075
             Project: ZooKeeper
          Issue Type: Bug
          Components: java client
    Affects Versions: 3.4.6
            Reporter: Charlie Helin


Just happened to notice Utils.bufEquals(byte[], byte[]) as a rather large 
outlier (~7% CPU time) when running with an attached profiler.

By just simply switching the implementation to delegate directly to 
Arrays.equals(byte[], byte[]) the invocation disappears from the profile. The 
reason for this is that this is one of the methods which the JIT (not the 
interpreter) will generate an intrinsic for, using the builtin support of the 
CPU to do the check.

The fix is trivial

{code}
    public static boolean bufEquals(byte onearray[], byte twoarray[] ) {
       return Arrays.equals(onearray, twoarray);
    }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to