0
我想增加尝试打开ZIP文件的次数,而我最大的延迟是在IO中。我想使用MemoryMappedFile,我只能将性能提高20%。使用MemoryMappedFile使用dotnetzip C#编写压缩文件来增加Brute Force#
我的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文件大小。
dotnetzip开始无法与多线程工作,如果我有一些文件并行工作,它的工作原理,但我设法达到速度的两倍与8个核心。与单核我做10000检查和使用13%的CPU和8核心我做20000检查和使用100%的CPU。有些东西对我来说没有意义。 – 2015-02-12 08:52:22
与CPU处理相比,内存读取速度太慢,使用.Net时无法将文件加载到CPU内存。 8核可以忙于同步 - 在你的情况下垃圾工作量。如果你不想去那里,那么只需考虑尝试次数,而不是CPU工作负载。 – Rodion 2015-02-12 20:29:41