2011-02-10 39 views
5

只是想知道,如果压缩将与桌面应用程序一起提供的jar文件(没有网络访问jar)通常是一个好主意,如果解压缩比文件io具有更大的影响。应该为桌面应用程序压缩jar文件吗?

编辑:谢谢你到目前为止的答案,抱歉在这里有点不清楚。我并没有谈论如何将这些罐子运送给客户,而是在应用程序启动时向磁盘上的jar文件提供最佳格式。我知道jar文件是zip文件,可以使用不同的压缩级别(或根本不压缩),我直接想知道压缩如何改变启动性能,不仅仅在我的开发盒上(它有一个快速的SSD磁盘,但也在较慢的磁盘上)。

+0

java jar的内部格式是ZIP压缩文件。任何一组工具都可以用于任何一种文件类型。这些文件可能被压缩(更快的磁盘访问)或未压缩(更少的CPU)。离开他们,因为你得到他们。 – BillThor 2011-02-10 05:30:24

回答

2

我希望答案取决于您的应用程序。但是,如果压缩JAR为应用程序提供更快或更慢的启动,应该很容易通过实验确定。只需构建压缩和压缩关闭的应用程序JAR文件,并比较应用程序的启动时间即可。 (请尝试在不同的机器上使用;例如慢速光盘,快速光盘,SSD和不同数量的RAM。请记住,某些操作系统积极缓存文件,并在您的时间测量中考虑到这一点。)

While你怎么做,你也应该调查说了这么多,我的直觉是,本地安装的压缩和非压缩之间的区别不同的压缩水平的影响(通过jar命令选项),并使用pack200


JAR将足够小,用户几乎不会注意到其中的差异。

1

在几乎任何合理的桌面环境下,磁盘IO的成本都高于压缩成本。这几乎肯定是压缩文件的胜利。

也就是说,一个JAR文件已经被压缩了。双倍压缩事物通常是不值得的。所以我会说,不要压缩你的JAR文件,因为它们已经被压缩了。

+3

我怀疑OP的问题有更多的事要做,他们是否应该在发布之前压缩它们的JAR文件 - 而不是压缩其他人提供的文件。 JAR文件不必被压缩 - 它只是一个zip文件,并且不压缩内容是合法的。 – 2011-02-10 05:33:00