zoukankan      html  css  js  c++  java
  • 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的性能。

  • 相关阅读:
    使用jquery.validate.js实现boostrap3的校验和验证
    MySQL 随机取数据效率问题
    qq在线客服代码
    使用Shell脚本查找程序对应的进程ID,并杀死进程
    Redis-概述
    JVM的类加载机制
    volatile
    java内存相关
    设计模式--模板方法
    设计模式概述
  • 原文地址:https://www.cnblogs.com/zolo/p/5885779.html
Copyright © 2011-2022 走看看