2011-02-10 38 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