当前位置: 首页 > news >正文

外贸网站cms主页网站建设

外贸网站cms,主页网站建设,钦州建站哪家好,wordpress微支付宝背景#xff1a; 今天在查找一个序列化和反序列化相关的问题时#xff0c;意外发现使用DataInputStream读取和ByteBuffer读取之间性能相差巨大#xff0c;本文就来记录下这两者在读取整数类型时的性能差异#xff0c;以便在平时使用的过程中引起注意 DataInputStream数据…背景 今天在查找一个序列化和反序列化相关的问题时意外发现使用DataInputStream读取和ByteBuffer读取之间性能相差巨大本文就来记录下这两者在读取整数类型时的性能差异以便在平时使用的过程中引起注意 DataInputStream数据读取 Vs ByteBuffer数据读取 我们会分别使用DataInputStream和ByteBuffer读取不同长度的字节数组分别测试读取Short,Int,Long三类整数然后分别看一下他们的性能 性能测试代码如下 package org.example.jmh.deserialize;import static java.util.concurrent.TimeUnit.MICROSECONDS; import static org.example.jmh.deserialize.DataUtil.createByteArray;import java.io.ByteArrayInputStream; import java.io.DataInput; import java.io.DataInputStream; import java.io.IOException; import java.nio.ByteBuffer;import org.openjdk.jmh.annotations.*; import org.openjdk.jmh.infra.Blackhole;Warmup(iterations 2, time 2) Measurement(iterations 3, time 10) Fork(1) OutputTimeUnit(MICROSECONDS) public class ByteBufferVsByteArrayDataInputBenchmark {State(Scope.Benchmark)public static class ByteBufferBackedDataInputState {ByteBuffer buffer;DataInput dataInput;Param({8, 32, 64, 128})int size;byte[] data;public void createData() {this.data createByteArray(size);}Setup(Level.Trial)public void init() {createData();this.buffer ByteBuffer.wrap(data);this.dataInput new BufferDataInput(buffer);}void reset() {buffer.position(0);}}State(Scope.Benchmark)public static class StreamBackedDataInpuState {ByteArrayInputStream bis;DataInput dataInput;Param({8, 32, 64, 128})int size;byte[] data;public void createData() {this.data createByteArray(size);}Setup(Level.Trial)public void init() {createData();this.bis new ByteArrayInputStream(data);this.dataInput new DataInputStream(bis);}void reset() {bis.reset();}}Benchmarkpublic void streamBackedDataInputReadShort(StreamBackedDataInpuState state, Blackhole bh) throws IOException {DataInput input state.dataInput;int size state.size;int pos 0;while (pos size) {bh.consume(input.readShort());pos 2;}state.reset();}Benchmarkpublic void bufferBackedDataInputReadShort(ByteBufferBackedDataInputState state, Blackhole bh) throws IOException {DataInput input state.dataInput;int size state.size;int pos 0;while (pos size) {bh.consume(input.readShort());pos 2;}state.reset();}Benchmarkpublic void streamBackedDataInputReadInt(StreamBackedDataInpuState state, Blackhole bh) throws IOException {DataInput input state.dataInput;int size state.size;int pos 0;while (pos size) {bh.consume(input.readInt());pos 4;}state.reset();}Benchmarkpublic void bufferBackedDataInputReadInt(ByteBufferBackedDataInputState state, Blackhole bh) throws IOException {DataInput input state.dataInput;int size state.size;int pos 0;while (pos size) {bh.consume(input.readInt());pos 4;}state.reset();}Benchmarkpublic void streamBackedDataInputReadLong(StreamBackedDataInpuState state, Blackhole bh) throws IOException {DataInput input state.dataInput;int size state.size;int pos 0;while (pos size) {bh.consume(input.readLong());pos 8;}state.reset();}Benchmarkpublic void bufferBackedDataInputReadLong(ByteBufferBackedDataInputState state, Blackhole bh) throws IOException {DataInput input state.dataInput;int size state.size;int pos 0;while (pos size) {bh.consume(input.readLong());pos 8;}state.reset();}public static class BufferDataInput implements DataInput {private final ByteBuffer data;public BufferDataInput(ByteBuffer data) {this.data data;}Overridepublic void readFully(byte[] bytes) {}Overridepublic void readFully(byte[] bytes, int i, int i1) {}Overridepublic int skipBytes(int i) {data.position(data.position() i);return data.position();}Overridepublic boolean readBoolean() {return data.get() ! 0;}Overridepublic byte readByte() {return data.get();}Overridepublic int readUnsignedByte() {return data.get() 0xFF;}Overridepublic short readShort() {return data.getShort();}Overridepublic int readUnsignedShort() {return data.getShort() 0xffff;}Overridepublic char readChar() {return data.getChar();}Overridepublic int readInt() {return data.getInt();}Overridepublic long readLong() {return data.getLong();}Overridepublic float readFloat() {return data.getFloat();}Overridepublic double readDouble() {return data.getDouble();}Overridepublic String readLine() {return null;}Overridepublic String readUTF() {return null;}}} jmh的测试结果 从结果可以看出不论是读取ShortInt还是LongByteBuffer都比DataInputStream有很大的性能优势大概3-4倍的差异那么你知道造成这种性能差距的原因是什么吗留个悬念
http://www.dnsts.com.cn/news/115880.html

相关文章:

  • 全屏响应式网站怎么学习企业网站维护
  • 手机网站设计公司哪家好网站建设与管理专业前景
  • 做视频导航网站豆芽网站建设douyanet
  • 响应式科技公司网站模板购物网站做兼职
  • 如何推进网站建设关键词搜索优化外包
  • 燕窝网站怎么做的建立全国统一的突发事件信息系统
  • 网站如何进行优化设计设计本笔记本推荐
  • 一个网站绑定多个域名 卖域名网站制作前期所需要准备
  • 如何做好网站推广营销开发网站定制
  • 做下载网站赚钱吗网站建设属于高新技术收入吗
  • 锦江区建设和交通局网站营销型商务网站
  • 石狮app网站开发注册公司需要什么条件才能开
  • 网站设计制作策划书大连装修公司哪家比较好
  • 百度如何创建网站人是用什么做的视频网站吗
  • 上海建设银行网站查询余额做网站的主题有哪些
  • 水利枢纽门户网站建设方案天元建设集团有限公司邮编
  • 公考在哪个网站上做试题大连网站网站建设
  • 高端大气网络设计建设公司网站织梦模板免费的网站代码
  • 网站推广 优帮云做网站公司松江
  • 网站内容优化的准则杭州物联网前十名公司
  • 重庆优化网站排名微信小程序怎么做问卷
  • 培训网站大数据分析个人网站的色彩设计怎么做
  • 网站加网页question2answer wordpress 整合
  • 网站推广运作怎么做如何高效的完成网站建设步骤
  • 深圳做网站的网网站开发文档范例
  • asp.net实用网站开发doc做门户网站的好处
  • 门户网站建设调查问卷视频转wordpress
  • 时间轴网页网站模板唐山网站建设费用
  • 创建了网站seo的基本内容
  • 我想建网站网站建设林晓东