2016-11-02 50 views
-2

我有一個Java應用程序,我需要解壓縮大約80 GB的GZIP文件。我應該使用Java API解壓縮還是應該調用解壓縮文件的bash腳本?哪一個會高效?我可能有超過1個zip文件,因此我可以爲每個解壓縮使用多個線程嗎?我的環境是基於Linux的解壓縮大文件(〜80 GB) - 使用Java或shell腳本

+0

使用Java API或bash腳本? *主要以意見爲基礎。* - 高效? *嘗試一下,看看自己。* ---多個線程? *是。* – Andreas

回答

1

gunzip命令比基於Java的解壓縮方法更快,因爲它是本機代碼,高度優化。

您可以使用bash在單獨的進程中解壓每個文件,它可能會更快,但不會像您期望的那樣因爲磁盤訪問瓶頸而更快。

當然,儘管仍然存在,但在SSD驅動器或在多個獨立磁盤上並行解壓幾個文件的情況下,瓶頸會盡量減少。

+0

對於這種大小的文件,實際上並行運行多個解壓縮可能會更慢,因爲它可能會增加磁盤尋道時間,假設CPU速度足夠快,只需進行一個解壓縮即可保持磁盤繁忙。 – Andreas

+1

@Andreas取決於您是否在使用SSD驅動器(沒有涉及手臂,只有傳輸速率瓶頸)或在多個驅動器中並行解壓縮(源文件位於單獨的驅動器上)。無論如何,解決方案都需要適當的基準。 –