目录
运行环境&前言:
运行环境:
系统:Windows 10 企业版 LTSC
Java版本: Java8
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)处理器: intel i5 6300HQ 2.30GHz
内存:12GB 2400
运行磁盘:三星 960pro
前言:经常使用Base64,所以想看看那个效率更高。
必须是Mavne项目依赖如下:
使用 Benchmark 进行测试
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jmh.version>1.25</jmh.version>
<javac.target>1.8</javac.target>
<uberjar.name>benchmarks</uberjar.name>
</properties>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>${jmh.version}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>${jmh.version}</version>
<scope>provided</scope>
</dependency>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>rg.openjdk.jmh.Main</mainClass> <!-- 此处为主入口-->
</manifest>
</archive>
<finalName>${uberjar.name}</finalName>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.openjdk.jmh.Main</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Java代码如下:
package top.isst.test;
import org.openjdk.jmh.annotations.*;
import sun.misc.BASE64Encoder;
import java.util.Base64;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
/**
* @author isst
* @date 2021/5/20 17:17
*/
@Fork(1)
@BenchmarkMode(Mode.SampleTime) //测试模式 最后测试时间
@Warmup(iterations=3) //热身次数
@Measurement(iterations = 5) // 测试多少次
public class SlideVerify {
@Benchmark
public void testBASE64Encoder() throws Exception {
t();
}
public void t() throws Exception{
String strs ="这是一个base64图数据用于测试";
BASE64Encoder encoder = new BASE64Encoder();
String str = encoder.encode(strs.getBytes());//生成base64编码
System.out.println("testBASE64Encoder加密完成."+ str.length());
Thread.sleep(1000);
}
@Benchmark
public void testBASE64Encoder2() throws Exception{
t1();
}
public void t1() throws Exception{
String strs ="这是一个base64图数据用于测试";
String str =Base64.getEncoder().encodeToString(strs.getBytes());
System.out.println("testBASE64Encoder加密完成2"+ str.length());
Thread.sleep(1000);
}
}
结果如下:
提示:个人推荐使用:BASE64Encoder 要快一点。
测试结果图:
欢迎加作者拉你进交流群。大家一起学习 244610909。