2016-02-21 28 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

这应该是性能不佳的原因,而不是压缩。 –