Created
February 15, 2022 07:51
-
-
Save petarov/e9c8d2953d7ab362acc40e0f7fbb2813 to your computer and use it in GitHub Desktop.
Java Test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.bouncycastle.util.encoders.Hex; | |
import java.util.HexFormat; | |
class Scratch { | |
public static void main(String[] args) throws Exception { | |
var data = new byte[] { 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, | |
96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, | |
87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, | |
127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, | |
-1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, | |
96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, | |
87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, | |
127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, | |
-1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, | |
96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, | |
87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, | |
127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, | |
-1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, | |
96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, | |
87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, | |
127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, | |
-1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, | |
96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, | |
87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, | |
127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, | |
-1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, | |
96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, | |
87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, | |
127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, | |
-1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, | |
96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, | |
87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, | |
127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, | |
-1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, | |
96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, | |
87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, | |
127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, | |
-1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, | |
96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 0, -1, 109, 87, 0, -1, 0, -1, -42, | |
-19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 0, -1, 109, 87, 0, -1, 0, -1, -42, | |
-19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 0, -1, 109, 87, 0, -1, 0, -1, -42, | |
-19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 0, -1, 109, 87, 0, -1, 0, -1, -42, | |
-19, 96, 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19 }; | |
// System.out.println("BC: " + Hex.toHexString(data)); | |
// System.out.println("HF: " + HexFormat.of().formatHex(data)); | |
// System.out.println("HF: " + org.apache.commons.codec.binary.Hex.encodeHex(data)); | |
// var data = new byte[] { 23, 42, 127, 31, 12, 0, -1, 109, 87, 0, -1, 0, -1, -42, -19, 96, 23, 42, 127, 31, 12, | |
// 0 }; | |
final var ITER = 100; | |
System.out.println("Byte array size: " + data.length); | |
System.out.println("Iterations: " + ITER); | |
var n1 = System.nanoTime(); | |
for (int i = 0; i < ITER; i++) { | |
data[0] ^= i & 127; | |
Hex.toHexString(data); | |
} | |
var e1 = (System.nanoTime() - n1) / 1000.0; | |
var n2 = System.nanoTime(); | |
var hf = HexFormat.of(); | |
for (int i = 0; i < ITER; i++) { | |
data[0] ^= i & 127; | |
HexFormat.of().formatHex(data); | |
} | |
var e2 = (System.nanoTime() - n2) / 1000.0; | |
var n3 = System.nanoTime(); | |
for (int i = 0; i < ITER; i++) { | |
data[0] ^= i & 127; | |
org.apache.commons.codec.binary.Hex.encodeHex(data); | |
} | |
var e3 = (System.nanoTime() - n3) / 1000.0; | |
System.out.println("java.util.HexFormat Hex: " + e2 + " ms."); | |
System.out.println("BouncyCastle Hex: " + e1 + " ms."); | |
System.out.println("commons Hex: " + e3 + " ms."); | |
}; | |
} |
Author
petarov
commented
Feb 15, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment