Benchmark Test sun.misc.BASE64Encoder与java.util.Base64执行效率对比 只测试解码

目录

运行环境&前言:

必须是Mavne项目依赖如下:

Java代码如下:

结果如下:


 

运行环境&前言:

运行环境:

系统: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。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

isst

我不喝咖啡,我想喝瓶水。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值