「这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战」。
作为一名优秀的开发者,对于技术的探求应该是永无止步的,如何让自己更进步,那就只有不停的学习,不停的充电.而这些都都是说起来容易做起来难,坚持才是难的地方 --蛙哈哈
AssetBundle详解-02
1.LZ4与LZMA的区别
LZ4是块压缩(chunk-based),LZMA是流压缩(stream-based)。流压缩(LZMA)在处理整个数据块时使用同一个字典,它提供了最大可能的压缩率但只支持顺序读取。块压缩(LZ4)指的是原始数据被分成大小相同的子块并单独压缩。如果你想要实时解压/随机读取开销小,则应该使用这种。
LZMA压缩方式的优点在于使用同一个字典压缩率较高,但只能顺序读取意味着加载任意一个资源时,都需要将整个AssetBundle解压,造成卡顿和额外内存占用。LZ4基于块压缩率较低,但只需解压需要的块即可,不会有大的卡顿和额外内存占用。
CRC校验码:类似于MD5,用于计算出该资源的一个特殊信息标示
ClassTypes列表:当前资源关联使用到了Unity中的哪些类,这些类是以编号索引的形式存在的,每个编号都对应一个类文件
Assets:AssetsBundle里包含了哪些资源文件
Dependencies:依赖
2.CRC MD5 SHA1的区别
相同点:
CRC、MD5、SHA1都是通过对数据进行计算,来生成一个校验值,该校验值用来校验数据的完整性。
不同点:
-
算法不同。CRC采用多项式除法,MD5和SHA1使用的是替换、轮转等方法;
-
校验值的长度不同。CRC校验位的长度跟其多项式有关系,一般为16位或32位;MD5是16个字节(128位);SHA1是20个字节(160位);
-
校验值的称呼不同。CRC一般叫做CRC值;MD5和SHA1一般叫做哈希值(Hash)或散列值;
-
安全性不同。这里的安全性是指检错的能力,即数据的错误能通过校验位检测出来。CRC的安全性跟多项式有很大关系,相对于MD5和SHA1要弱很多;MD5的安全性很高,SHA1的安全性最高。
-
效率不同,CRC的计算效率很高;MD5和SHA1比较慢。
-
用途不同。CRC一般用作通信数据的校验;MD5和SHA1用于安全(Security)领域,比如文件校验、数字签名等。