[C#FileStream和Windows内存缓存

问题描述 投票:0回答:1

我正在开发一个应存储一些PDF以便以后打印的应用程序。我有一个实现正在检查PDF的大小,并根据我在内存或文件流之间选择的大小(<2GB = MemStream和> 2GB = FileStream)来检查实现。

[当我使用FileStream时,性能会有所不同,我只是注意到这是Windows内存缓存引起的。基本上,我用来写入/读取FileStream或从FileStream读取的所有内容都将进入此缓存,并且保存6个PDF后,我的性能会非常低(30秒,而60s +)]

我以以下方式声明我的FileStream:

FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite, 524288, FileOptions.WriteThrough))

我刚刚添加了WriteThrough选项,但似乎无法解决该问题。在将文件保存到磁盘并关闭/处置FileStream之后,是否有可能清除了缓存内存?

谢谢你!

c# file caching stream filestream
1个回答
0
投票

我认为,如果不处理PDF,则不应将其存储在内存中。

操作后,只需保存文件并处理流。

如果需要一些元数据,只需将它们而不是整个文件带入您的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.