关于使用 Unity.IO>Compression 的GZIP 与 使用 SharpZipLib的字符串压缩对比

最近在跟http服务器使用json交互的时候,发现json数据很大,想着能省一点是一点,于是开始折腾字符串压缩.

本来Unity中的 .netSystem.IO.Compression自带了Gzip压缩功能,于是简单撸了下,可惜编辑器下跑得飞起,一上安卓就报错

DllNotFoundException:MonoPosixHelper at (wrapper managed-to-native) System.IO.Compression.DeflateStream:CreateZStream

 

。懵逼,度娘问了下,一堆英文吧,大致意思貌似是unity的这个库引用最后会在电脑上引用MonoPosixHelper这个dll,安卓上调不到。而且很明显这块也没多少人重视,博客文案啥的确实少。没辙,得找个解决方法····然后就找到了两个

  1. unity自己把.net的GZIP搞了出来,封了个package,叫GZipStream + DeflateStream - Unity.IO.Compression

官方下载地址,免费的

https://assetstore.unity.com/packages/tools/integration/gzipstream-deflatestream-unity-io-compression-31902

用起来很方便 直接把引用类从System.IO.Compression 改成Unity.IO.Compression 就能套着用了。但是也看到下面留言有人说速率很慢,我对比了下,前后相差速度差不多十倍不止·······确实揪心·······其实用起来么·也倒没那么大感觉···但是有人说慢,那咱还是得再折腾下。于是第二种

2. SharpZipLib

官网地址 http://icsharpcode.github.io/SharpZipLib/

       人家说放dll库,愚笨,都没找到官方dll的下载地址。我就把官网代码我放到Unity 2018.2.20里面,结果不能用,报错说要.net 6.0。

继续上网找,顺便还得知道咋用,然后这是我引用的博客地址

https://www.cnblogs.com/ouyangnengjun/articles/3233053.html

http://www.ggcms.com/Article/36

 

糅合了下,用了起来,顺便对比了下性能 SL开头的就是SharpZipLib

Unity开头的就是Unity.IO.Compression,数据如下,压缩,解压,数据当然都是对的上的。

 

压缩前长度:3417

 

SLZip压缩后长度:1200

SLZip压缩用时:0.001710892

SLZip解压缩后长度:3417

SLZip解压缩用时:0.0002937317

 

SLGZip压缩后长度:1020

SLGZip压缩用时:0.001155853

SLGZip解压缩后长度:3417

SLGZip解压缩用时:0.0002689362

 

UnityGZIP压缩后长度:1252

UnityGZIP压缩用时:0.05883408

UnityGZIP解压缩后长度:3417

UnityGZIP解压缩用时:0.0004959106

 

从编辑器下测试数据来看, SLGZIP无论是压缩率还是压缩的性能表现明显更好····

 

个人还是肤浅,所见即所得了,也没时间继续折腾了,还得回去补功能代码,先就到这了···0.0

 

原文地址:https://mp.csdn.net/postedit/99754998 转载请注明出处!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值