LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 聚焦深空

gzip bzip2 lzma xz 7z 讨论(xz 推荐贴)

[复制链接]
 楼主| 发表于 2009-5-24 21:26:06 | 显示全部楼层
Post by linux_pro;1990626
to 聚焦深空

不负责,因为norflash实在是小,只有4MB,要做一个NAS,RDC的 X86.
Openwrt的标准就是 squashfs+LZMA压缩.现在embedded硬件都很强大了,
但是我手里的 RDC只有 133主频,和 zip -9 的解压速度没法比.

呵呵,偶不喜欢结构上复杂的东西。

Openwrt 那么做,可能是想多塞进去一点点功能,您不一定非要那么做的。
其实 norflash,可以直接从 flash 运行的,当成只读的内存看。
norflash 一般都不大,是因为贵,只要有可能总会被 JS 黑心 cost down 的。

NAS 的话,4M 问题不大的,只要裁减得当。
如果压缩的话,有个解压过程,开机就慢了。

个人觉得 squashfs 还是适用于 livecd 环境。
不过偶自己一般用 debian 的 bootcd 做维护光盘,直接把 cd 的文件系统作为 rootfs 不压缩,懒人嘛!

不跑题了。
回复 支持 反对

使用道具 举报

发表于 2009-5-24 22:58:55 | 显示全部楼层
squashfs 本身属於唯读,用作正常系统使用并不合适
回复 支持 反对

使用道具 举报

发表于 2009-5-24 23:26:37 | 显示全部楼层
Post by 聚焦深空;1990638
呵呵,偶不喜欢结构上复杂的东西。

Openwrt 那么做,可能是想多塞进去一点点功能,您不一定非要那么做的。
其实 norflash,可以直接从 flash 运行的,当成只读的内存看。
norflash 一般都不大,是因为贵,只要有可能总会被 JS 黑心 cost down 的。

NAS 的话,4M 问题不大的,只要裁减得当。
如果压缩的话,有个解压过程,开机就慢了。

个人觉得 squashfs 还是适用于 livecd 环境。
不过偶自己一般用 debian 的 bootcd 做维护光盘,直接把 cd 的文件系统作为 rootfs 不压缩,懒人嘛!

不跑题了。



没办法,甲方要求 NAS中包含 FTP,SAMBA,NTFS,FAT32,管理套件(用户,磁盘方面),USB打印支持,BT支持,WEB页面控制页面.
你说我要不用squashfs+lzma来做,怎么搞呢?
系统启动后把squashfs内容 搞到RAM中.也就是占用10几M.

norflash没多贵,最多几美金,大批采购时甲方的事情啦.

to d00m3d

squashfs 本身属於唯读,用作正常系统使用并不合适
当然是只读.
做嵌入式最合适.一个Norflash划几个区,
|------------ ---|
| bootloader |
|   squashfs  |   ---only read  ,system
|     JFFS2     |   --- R,W       ,config
|    other       |   ----   anything
|--------------- |
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-25 12:14:04 | 显示全部楼层
xz utils 与 lzma utils 补充测试
  1. $ #xz *.lzma 格式测试(xz 测试版:http://tukaani.org/xz/xz-4.999.8beta.tar.gz)
  2. $ time lzma -9 xz-4.999.8beta.tar
  3. real        0m14.452s
  4. user        0m14.149s
  5. sys        0m0.204s
  6. $
  7. $ ls -gG xz-4.999.8beta.tar.lzma
  8. -rw-r--r-- 1 1003362 05-21 21:41 xz-4.999.8beta.tar.lzma
  9. $
  10. $ time lzma -d xz-4.999.8beta.tar.lzma
  11. real        0m0.353s
  12. user        0m0.320s
  13. sys        0m0.028s
  14. $
  15. $
  16. $ #lzma 测试 (lzma 稳定版:http://tukaani.org/lzma/lzma-4.32.7.tar.gz)
  17. $ time lzma -9 xz-4.999.8beta.tar
  18. real        0m28.869s
  19. user        0m28.634s
  20. sys        0m0.108s
  21. $
  22. $ ls -gG xz-4.999.8beta.tar.lzma
  23. -rw-r--r-- 1 998390 05-21 11:41 xz-4.999.8beta.tar.lzma
  24. $
  25. $ time lzma -d xz-4.999.8beta.tar.lzma
  26. real        0m0.441s
  27. user        0m0.404s
  28. sys        0m0.036s
  29. $
复制代码

测试大体表明:
使用最大压缩率,
压缩时 xz 耗时是 lzma 一半,
压缩时 xz 生成文件体积比 lzma 略大,
解压时 xz 速度比 lzma 略快。

压缩时 xz 使用 *.xz 格式 生成文件 比 *.lzma 格式 略大,
测试样本较小,多次测试结果有出入,无法判断 xz utils 使用 *.xz 与 *.lzma 格式 压缩与解压时间 谁占优势。

到目前为止,lzma utils 的压缩率仍是最大的,xz utils 解压时间占优势。
回复 支持 反对

使用道具 举报

发表于 2009-5-29 23:51:13 | 显示全部楼层
刚看我的tar,居然是1.20,估计不支持XZ了
回复 支持 反对

使用道具 举报

发表于 2009-5-30 00:23:56 | 显示全部楼层
Post by newper;1990109
Tar-1.22已支持xz
CLFS的一些patch:

呵呵.我今天刚好升级成1.22的了...
原来:我原来的TAR不知道什么原因自己坏掉了...
还好系统中有SFTP  从另外一台机上面COPY了一个过来...
不然就得用U盘了....

我就喜欢N合一的,我宁愿单片软件大点也不要N个小程序....
回复 支持 反对

使用道具 举报

发表于 2009-5-31 10:23:04 | 显示全部楼层
Post by 聚焦深空;1990794
xz utils 与 lzma utils 补充测试
  1. $ #xz *.lzma 格式测试(xz 测试版:http://tukaani.org/xz/xz-4.999.8beta.tar.gz)
  2. $ time lzma -9 xz-4.999.8beta.tar

  3. real        0m14.452s
  4. user        0m14.149s
  5. sys        0m0.204s
  6. $
  7. $ ls -gG xz-4.999.8beta.tar.lzma
  8. -rw-r--r-- 1 1003362 05-21 21:41 xz-4.999.8beta.tar.lzma
  9. $
  10. $ time lzma -d xz-4.999.8beta.tar.lzma

  11. real        0m0.353s
  12. user        0m0.320s
  13. sys        0m0.028s
  14. $
  15. $
  16. $ #lzma 测试 (lzma 稳定版:http://tukaani.org/lzma/lzma-4.32.7.tar.gz)
  17. $ time lzma -9 xz-4.999.8beta.tar

  18. real        0m28.869s
  19. user        0m28.634s
  20. sys        0m0.108s
  21. $
  22. $ ls -gG xz-4.999.8beta.tar.lzma
  23. -rw-r--r-- 1 998390 05-21 11:41 xz-4.999.8beta.tar.lzma
  24. $
  25. $ time lzma -d xz-4.999.8beta.tar.lzma

  26. real        0m0.441s
  27. user        0m0.404s
  28. sys        0m0.036s
  29. $
复制代码


测试大体表明:
使用最大压缩率,
压缩时 xz 耗时是 lzma 一半,
压缩时 xz 生成文件体积比 lzma 略大,
解压时 xz 速度比 lzma 略快。

压缩时 xz 使用 *.xz 格式 生成文件 比 *.lzma 格式 略大,
测试样本较小,多次测试结果有出入,无法判断 xz utils 使用 *.xz 与 *.lzma 格式 压缩与解压时间 谁占优势。

到目前为止,lzma utils 的压缩率仍是最大的,xz utils 解压时间占优势。


我也找了一個內核源碼樹實驗了一下:
  1. d00m3d@BlackMesa:~/BLFS-sources$ ll linux*
  2. -rw-rw-r-- 1 d00m3d d00m3d 53512601 Feb 21 09:23 linux-2.6.28.7.tar.bz2
  3. -rw-rw-r-- 1 d00m3d d00m3d 52665364 Jan  8 12:06 linux-2.6.28.tar.bz2
  4. -rw-rw-r-- 1 d00m3d d00m3d 57618115 Mar 24 08:50 linux-2.6.29.tar.bz2
  5. -rw-rw-r-- 1 d00m3d d00m3d 60388914 Apr 24 14:48 linux-2.6.30-rc2.tar.bz2
  6. -rw-rw-r-- 1 d00m3d d00m3d 60400704 Apr 24 14:56 linux-2.6.30-rc3.tar.bz2
  7. -rw-rw-r-- 1 d00m3d d00m3d   666381 Jan  8  2008 linux_commands_line_env1.1.pdf
  8. -rw-rw-r-- 1 d00m3d d00m3d   158408 Feb 13  2007 linux_doc.pdf
  9. d00m3d@BlackMesa:~/BLFS-sources$ time tar xf linux-2.6.30-rc3.tar.bz2

  10. real    0m42.749s
  11. user    0m33.907s
  12. sys     0m4.255s
  13. d00m3d@BlackMesa:~/BLFS-sources$ tar cf linux-2.6.30-rc3.tar linux-2.6.30-rc3
  14. d00m3d@BlackMesa:~/BLFS-sources$ time xz -z -9 linux-2.6.30-rc3.tar

  15. real    10m37.019s
  16. user    10m23.827s
  17. sys     0m6.063s
  18. d00m3d@BlackMesa:~/BLFS-sources$ du -sh linux-2.6.30-rc3
  19. 385M    linux-2.6.30-rc3
  20. d00m3d@BlackMesa:~/BLFS-sources$ rm -fr linux-2.6.30-rc3
  21. d00m3d@BlackMesa:~/BLFS-sources$ time tar xf linux-2.6.30-rc3.tar.xz

  22. real    0m15.787s
  23. user    0m8.905s
  24. sys     0m3.172s
  25. d00m3d@BlackMesa:~/BLFS-sources$ ll linux*tar*
  26. -rw-rw-r-- 1 d00m3d d00m3d 53512601 Feb 21 09:23 linux-2.6.28.7.tar.bz2
  27. -rw-rw-r-- 1 d00m3d d00m3d 52665364 Jan  8 12:06 linux-2.6.28.tar.bz2
  28. -rw-rw-r-- 1 d00m3d d00m3d 57618115 Mar 24 08:50 linux-2.6.29.tar.bz2
  29. -rw-rw-r-- 1 d00m3d d00m3d 60388914 Apr 24 14:48 linux-2.6.30-rc2.tar.bz2
  30. -rw-rw-r-- 1 d00m3d d00m3d 60400704 Apr 24 14:56 linux-2.6.30-rc3.tar.bz2
  31. -rw-rw-r-- 1 d00m3d d00m3d 48665812 May 25 11:58 linux-2.6.30-rc3.tar.xz
  32. d00m3d@BlackMesa:~/BLFS-sources$
复制代码
  1. d00m3d@BlackMesa:~/BLFS-sources$ time tar xf linux-2.6.30-rc3.tar.xz

  2. real    0m18.023s
  3. user    0m9.009s
  4. sys     0m3.271s
  5. d00m3d@BlackMesa:~/BLFS-sources$ tar cf linux-2.6.30-rc3.tar linux-2.6.30-rc3
  6. d00m3d@BlackMesa:~/BLFS-sources$ du -sh linux-2.6.30-rc3
  7. 385M    linux-2.6.30-rc3
  8. d00m3d@BlackMesa:~/BLFS-sources$ rm -fr linux-2.6.30-rc3
  9. d00m3d@BlackMesa:~/BLFS-sources$ time lzma -9z linux-2.6.30-rc3.tar

  10. real    10m42.825s
  11. user    10m23.118s
  12. sys     0m6.656s
  13. d00m3d@BlackMesa:~/BLFS-sources$ ll linux*tar*
  14. -rw-rw-r-- 1 d00m3d d00m3d 53512601 Feb 21 09:23 linux-2.6.28.7.tar.bz2
  15. -rw-rw-r-- 1 d00m3d d00m3d 52665364 Jan  8 12:06 linux-2.6.28.tar.bz2
  16. -rw-rw-r-- 1 d00m3d d00m3d 57618115 Mar 24 08:50 linux-2.6.29.tar.bz2
  17. -rw-rw-r-- 1 d00m3d d00m3d 48658231 May 30 11:49 linux-2.6.30-rc3.tar.lzma
  18. -rw-rw-r-- 1 d00m3d d00m3d 48665812 May 25 11:58 linux-2.6.30-rc3.tar.xz
  19. d00m3d@BlackMesa:~/BLFS-sources$
复制代码

基本上有幾佰 MB 的時候,時間及體積上的差別已不大,也就是幾秒鐘及幾 kB 的上落而矣
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-31 12:18:26 | 显示全部楼层
Post by d00m3d;1992480
基本上有幾佰 MB 的時候,時間及體積上的差別已不大,也就是幾秒鐘及幾 kB 的上落而矣

您这里好像测试的是 xz utils 提供的 xz lzma 性能差异。

上面偶的补充测试的是 xz utils 提供的 lzma 与 lzma utils 最后一个稳定版提供的 lzma 性能差异。

参照首贴,我们的测试结果是一致的。

维持原判。

昨天在 LFS/CLFS 官网闲逛,原来早在今年3月份 xz utils 已进驻 CLFS-SVN、CLFS-Sysroot 手册。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 12:59:56 | 显示全部楼层
深空兄看事真的夠仔細,不錯都是 xz utils 提供的 xz 及 lzma,我一向都較激進,自然是用最新的 beta 版了,嘿嘿。
回复 支持 反对

使用道具 举报

发表于 2009-6-2 22:11:45 | 显示全部楼层
Post by 聚焦深空;1989992

偶也想用 xz,但看到 beta 字样有些不放心,万一稳定版文件格式有变动,造成不兼容就不合算了,虽然这是小概率事件。
偶再等等,稳定版应该会在近期发布。


这个 beta 指的只是xz-utils这个工具.文件格式应该是稳定了的.

http://tukaani.org/xz/里有这句.
The .xz File Format
The file format is now officially stable.


懒人使用tar打包压缩用下面的命令最好

tar cfa file.tar.X file
这个X是指gz,bz2,xz,lzma(要求tar支持的格式)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表