gpt4 book ai didi

c# - 具有非常慢的 CreateViewStream 的 MemoryMappedFile

转载 作者:太空狗 更新时间:2023-10-29 22:58:11 26 4
gpt4 key购买 nike

我正在使用一个内存映射文件,大约是。 100 GB 的数据。当我对该文件调用 CreateViewStream 时,创建它需要 30 分钟,这似乎是因为内存映射文件的大小,但为什么要花这么长时间?它是否将整个文件复制到托管内存中?

当我用文件流写入文件并在不重启的情况下访问它时,需要更长的时间。 (奇怪地)

最佳答案

我无法重现这些问题。这是我用来测试的代码:

    static void Main(string[] args)
{
var sw = Stopwatch.StartNew();
var mmf = MemoryMappedFile.CreateFromFile(@"f:\test.bin");
var stream = mmf.CreateViewStream();
for (int i = 0; i < 100000; i++)
{
stream.ReadByte();
}
Console.WriteLine(sw.Elapsed);
}

f:\test.bin 是一个 100GB 的零填充文件,我为此测试生成了该文件。我能够创建 MemoryMappedFile,然后运行 ​​CreateViewStream 并在 3.7 秒内从中读取 100,000 个字节。

请提供展示您所描述行为的示例代码,我很乐意将其拆解并查看发生了什么。

关于c# - 具有非常慢的 CreateViewStream 的 MemoryMappedFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32087790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com