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的性能。

时间: 2024-11-06 14:04:19

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

三种压力测试工具 http_load 和 apache ab 、 siege 压力测试(转)

在测试站点性能时找到个不错的说明式文章 From:http://blog.csdn.net/lyflower/archive/2010/09/09/5873544.aspx 到http://www.acme.com/software/http_load/ 下载http_load ,安装也很简单直接make;make instlall 就行. http_load 的标准的两个例子是: http_load -parallel 5 -fetches 1000 urls.txt http_load -r

Apache Common DbUtils

前段时间使用了Apache Common DbUtils这个工具,在此留个印,以备不时查看.大家都知道现在市面上的数据库访问层的框架很多,当然很多都是包含了OR-Mapping工作步骤的 例如大家常用的Hibernate与Mybatis.当然如果人们要一个纯粹的封装了JDBC的工具类,使用Apache Common DbUtils(下面简称ACD)是个不错的选择,这个工具在JDBC的基础上稍加封装是JDBC的操作更加便捷,在学习使用这个框架的途中你也不需要学 习太多的API类,因为一共也才3个部

apache common email组件小结

apache common email组件小结.这是个很好的玩意,可以支持单发简单邮件,发附件,发HTML格式邮件,小结如下: import java.io.File;import java.io.UnsupportedEncodingException;import java.net.MalformedURLException;import java.net.URL;import javax.mail.internet.MimeUtility;import org.apache.commons

Android中使用Apache common ftp进行下载文件

在Android使用ftp下载资源 可以使用ftp4j组件,还可以用apache common net里面的ftp组件,这2个组件我都用过. 个人感觉Apache common net里面的组件比较好用一些,下面是一个实例. 项目中对ftp的使用进行了封装,添加了回调函数已经断点续传的方法. FTPCfg 用来存储ftp地址,密码等信息的. FTPClientProxy 只是个代理而已,里面主要封装了common ftp api IRetrieveListener做回调用的,比如用于是否下载完成

Android Apache common ftp开源库以及http区别分析

1.前言: ftp开源库:Apache common ftp开源库上传文件到局域网的ftp上吧.开源库是commons-net-2.2.jar.包名是这样的:org.apache.commons.net.ftp.FTPClient;用这个框架也能可以上传,下载以及删除ftp服务器的文件的.我也是参考网上大神例子迅速在项目中使用,现在趁机会总结一下,以及我自已在此基础上再次封装的ftp使用类. http开源库:之前开发的时候先是用到了http协议上传文件,删除文件等等,使用的开源库是AsyncHt

iOS测试-如何指标量化app耗电量和性能XCTest Metrics

对于app端的专项测试,Android端我们可以用adb或者一些三方工具进行(例如itest)进行实时的性能监控,iOS端的话也可以用用一些三方的工具,但是需要嵌入到我们的项目当中,今天来介绍下Xcode11下的apple提供的基于XCTest对app耗电量和性能的全新框架. 资料来源:https://developer.apple.com/videos/play/wwdc2019/417/ app耗电量 app耗电量和它的性能体现是息息相关的,那么app中哪些性能项会影响耗电量呢? CPU m

Apache common pool2 对象池

对象池的容器:包含一个指定数量的对象.从池中取出一个对象时,它就不存在池中,直到它被放回.在池中的对象有生命周期:创建,验证,销毁,对象池有助于更好地管理可用资源,防止JVM内部大量临时小对象,频繁触发垃圾回收,造成系统暂停.有许多的使用示例.特别是在应用服务器数据源池,线程池等都是对象池的使用,下面情况适合使用对象池: 同样的对象高频率使用 对象太大消耗很多内存 对象初始化需要时间 对象内涉及IO操作 (Streams, Sockets, DB, etc.) 对象并不是线程安全时. 很多人使用

Apache实现网站性能压力测试

简介 压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.性能测试工具目前最常见的有以下几种:ab.http_load.webbench.siege. ab的原理 ??ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx..tomcat.IIS等其它Web服务器的压力.??ab命令对发出负载的计算机要求很低,它既不会占用很高CPU

Apache Common

Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问 http://jakarta.apache.org/commons/index.html BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain Chain 提供实现组织复杂的处理流程的"责任链模式". CLI CLI 提供针对