Base64实现测试,不要太相信apache-common的性能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Base64实现测试,不要太相信apache-common的性能相关的知识,希望对你有一定的参考价值。

针对三种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的性能。

以上是关于Base64实现测试,不要太相信apache-common的性能的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter测试上传图片base64编码接口

Razor 页面 .Net 核心显示来自页面模型的 base64 图像

由于 Base64 编码字符串太大,无法验证 XML

vue.base64转pdf加载太慢

python base64加密文本内容

有效负载太大 - 向服务器发送大于 1mb 的 base64 图像数组