我正在开发一个应存储一些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之后,是否有可能清除了缓存内存?
谢谢你!
我认为,如果不处理PDF,则不应将其存储在内存中。
操作后,只需保存文件并处理流。
如果需要一些元数据,只需将它们而不是整个文件带入您的应用程序。