使用MemoryMappedFile通过dotnetzip C#增加zip文件的暴力

时间:2015-02-09 19:48:55

标签: dotnetzip

我想增加打开ZIP文件的尝试次数,我最大的延迟是IO。我想使用MemoryMappedFile,我只能将性能提高20%。

我的CPU使用率仅为20%,因为我陷入了IO。

我第一次使用dotnetzip时就像那样使用它

zip1 = ZipFile.Read(filename);

之后我决定使用MemoryMappedFile,我就像那样使用它

using (MemoryMappedFile memoryMapped = MemoryMappedFile.CreateFromFile(filename,     FileMode.Open))
{
    var viewStream = memoryMapped.CreateViewStream();
    zip1 = ZipFile.Read(viewStream);
}

我将它提高了20%,但我认为它应该更多。有没有人有想法?我在不超过10MB的zip文件大小时使用它。

1 个答案:

答案 0 :(得分:0)

你有一个单线程代码。

要使用你的CPU,你需要打开处理器可以同时处理的多个线程,每个线程都可以使用MemoryMappedFile。

您可以从这里开始Task Parallelism