针对三种Base64实现:
* 自已实现的
* JDK8的java.util.Base64
* apache-common的org.apache.commons.codec.binary.Base64
/**
* 用于命令行调用
*
* @throws Exception
*/
public static void main(String[] args) throws Exception {
byte[] binaryData = "这是一个小小的测试 this is a test only".getBytes();
long t1 = System.currentTimeMillis();
for (int i = 0; i < 10000 * 1000; i++)
Base64.decode(Base64.encode(binaryData));
long t2 = System.currentTimeMillis();
Encoder encoder = java.util.Base64.getEncoder();
Decoder decoder = java.util.Base64.getDecoder();
for (int i = 0; i < 10000 * 1000; i++)
decoder.decode(encoder.encodeToString(binaryData));
long t3 = System.currentTimeMillis();
for (int i = 0; i < 10000 * 1000; i++)
org.apache.commons.codec.binary.Base64.decodeBase64(org.apache.commons.codec.binary.Base64.encodeBase64String(binaryData));
long t4 = System.currentTimeMillis();
System.out.println("t2-t1:"+(t2-t1));
System.out.println("t3-t2:"+(t3-t2));
System.out.println("t4-t3:"+(t4-t3));
}
测试结果:
t2-t1:7871 #自己实现的
t3-t2:2820 #JDK8自带的
t4-t3:25142 #apache-common的
不要太相信apache-common的性能。