应用程序在Server上运行较慢

时间:2016-08-23 08:20:20

标签: c# memory-mapped-files

我有一个WinForms应用程序。我需要从非常大的二进制文件(> 4GB)读取数据。为此,我选择使用MemoryMappedFile概念。我能够从文件中读取所需的数据。以下是我的内存映射文件的片段:

MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(filePath, FileMode.Open, "mf4");

// offset and blockLength vary on from where I want to read in the file.
var mmfStream = mmf.CreateViewStream(offset, BlockLength);
{
    using (BinaryReader mf4Reader = new BinaryReader(mmfStream))
    {
        // Reading required bytes using binary reader
    }
}

我的应用程序需要大约6分钟才能从Windows 7 Professional PC(8GB RAM,Intel i5处理器)上的4 GB文件中读取所需数据。但同样的应用程序在Windows Server 2012上需要11~16分钟,RAM的4倍以上和更好的CPU。使用服务器的用户数仅为1。

我完全被困在这里,不知道为什么会这样。任何关于内存映射文件或Windows Server使用的帮助/见解都会很棒。

更新 我在项目的一个模块中使用了c#dll。当我添加dll的源代码并构建解决方案时,应用程序现在也以相同的速度在服务器上运行。

0 个答案:

没有答案