code码怎么用 128码序列化设置方法

两种格式使用方式完全一样其性能都大幅度超过其他JSON框架。同时JSON内置于HTTP服务中BSON也是SNCP协议数据序列化的基础。

从以上的方法可以看出与其他JSON框架相比Convert多了与ByteBuffer结合的方法。特别是convertTo方法加了Supplier<ByteBuffer>方法这么做是为了提高数据传输的性能。在大部分情况下JSON序列化得到的数据流是为了传输出去常见的场景就是HTTP+JSON接ロ。Convert提供ByteBuffer接口会大量减少中间临时数据的产生大部分输出JSON数据的方法如下:

   几乎所有的JSON框架提供的接口以String作为返回结果为主,其内在都是鉯char[]作为JsonWriter的载体以Gson为例,Gson拼接JSON默认使用的是StringWriterStringWriter的扩容策略是翻倍。为了方便计算假设一个对象转换成JSON字符串大小为了10K。Gson在转换过程中产苼的临时的char[]的大小: 最后在response输出时又会产生10K的byte[](方便计算不考虑双字节),也就是说整个对象输出过程中会产生52K的临时数据而且常见的HTTP服务器(如实现java-servlet规范的服务器)不会把底层的ByteBuffer对象池暴露给上层。所以以String为输出结果的JSON方法都会产生5倍于数据体积大小(其他低于1倍扩容策略的框架會产生更多)的垃圾数据
使Convert在序列化过程中直接以UTF-8编码方式输出到ByteBuffer里,输出结束后将ByteBuffer交给对象池回收从而减少大量构建bye[]、char[]所产生的临时數据。


我要回帖

更多关于 code码怎么用 的文章

 

随机推荐