NSIS 压缩算法、方式 对比
对于安装包打包使用的NSIS,提供了7种压缩方式:
- ZLIB
- ZLIB(固实)
- BZIP2
- BZIP2(固实)
- LZMA
- LZMA(固实)
- 极限压缩
SetCompressor [/SOLID] [/FINAL] zlib|bzip2|lzma
该命令设置了安装程序压缩文件、数据使用的压缩算法。该命令只能在区段、函数之外或在任何数据被压缩之前使用。不同的压缩方式不能在同一个安装程序里用来压缩不同的文件。建议在脚本的开始处使用这个命令来尽可能避免编译错误。
支持三种压缩方式:ZLIB,BZIP2 和lzma。
ZLIB (默认值) 使用收缩算法,是一个快速简单的方法。默认的压缩级别它消耗大约 300KB 内存。
BZIP2 通常比 ZLIB 的压缩率好,但是稍微慢了一点并且内存的使用也多一点。默认的压缩级别它消耗大约 4MB 内存。
LZMA 是一个压缩率比较理想的新式压缩方式。它的解压速度非常快(在 2GHz 的 CPU 上能达到 10-20MB/s 的速度),但是压缩速度很慢。解压时内存的使用量是字典的大小加上一些 KB,默认值为 8MB。
如果使用了/FINAL ,则后来调用的 SetCompressor 都会被忽略。
如果使用了/SOLID 的话,所有的数据将被压缩在一个区块里,这样可以提高压缩率。
此外还有一个选项 设置字典大小SetCompressorDictSize
字典大小以 MB 为单位。
设置使用 压缩器时的字典大小 (默认为 8MB)。
设置最大32MB,可以提高压缩率。
SetCompressor /SOLID lzma
SetCompressorDictSize 32
下面是我的实际的对比
文章图片
【NSIS 压缩算法、方式 对比】
推荐阅读
- 画解算法(1.|画解算法:1. 两数之和)
- Guava|Guava RateLimiter与限流算法
- 一个选择排序算法
- SG平滑轨迹算法的原理和实现
- 《算法》-图[有向图]
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 虚拟DOM-Diff算法详解
- 《数据结构与算法之美》——队列
- 怎么压缩图片大小不影响质量
- 算法回顾(SVD在协同过滤推荐系统中的应用)