2016-02-21 48 views
0

我注意到在基於ARM的設備上提取zip文件的時間非常長。提取20mb zip文件需要60秒以上!我在950XL上看到了140秒,這應該是更強大的ARM型號之一。UWP ARM System.IO解壓縮性能差

這是我使用的代碼:

var startExtractTime = DateTime.Now; 
ZipArchive za = new ZipArchive(archiveMemoryStream, ZipArchiveMode.Read); 
za.ExtractToDirectory(path); 
var stopExtractTime = DateTime.Now; 
var durationInSeconds = stopExtractTime.Subtract(startExtractTime).TotalSeconds; 

這是我從這個方法期待怎樣的表現?有沒有其他方法可以解決這個問題?我寧願在我的項目中包含一個Zip文件,而不是在該文件中的HUGE目錄結構,但它無法從ARM設備獲得良好的性能,我可能沒有選項。

+1

Flate壓縮速度可能非常慢,但減壓應該以合理的速度進行。我不會責怪ARM CPU。你有沒有嘗試用本地代碼與zlib?它可能是一個緩慢的文件系統,而不是一個慢速的CPU。您是否將數據寫入內部閃存或SD卡? – BitBank

+0

我正在寫入應用程序的臨時數據文件夾。我認爲這是在設備上,所以在我的Lumia 950 XL的情況下,我預計它會非常快。 – emseetea

回答

1

Zip解壓縮本身不應該花費那麼多時間。但是,如果您的存檔包含大量小文件,則這可能是閃存驅動器/內部閃存的瓶頸。嘗試解壓縮單個文件的20Mb歸檔文件以檢查它是CPU還是文件系統問題。

+0

我的檔案有很多小文件。 – emseetea

+0

這應該是性能不佳的原因,而不是壓縮。 –