我有一个场景,每个上传的可能是任何MIME类型的文件都应该加密,当使用时想要下载时,应该对它们进行解密。
为此我已解密所请求的文件并将该文件保存在临时位置。 我的解密方法是通过读取加密的文件流来写入文件流。
现在我应该更改算法以将加密的文件流保存到内存流中 并直接从内存流下载,而不是写入文件流并下载该文件。
在性能方面,在这种情况下可能是更好的文件流或内存流。
我在想如果多个用户请求多个大文件,可以说100个不同的用户请求100个不同的文件。在这种情况下,内存可能会耗尽,我们可能会遇到一些不必要的麻烦。
我应该实施哪一个。
答案 0 :(得分:0)
您是否考虑直接将流式传输到NetworkStream
以获取输出?你将不需要内存和磁盘空间。如果您期望通过缓存BufferedStream
中的数据来提高性能。
如果您无法选择直接或缓冲流媒体,则正确答案取决于您的要求。您需要知道文件的大小和预期的请求数。如果您认为您的Web服务器内存可以处理它并且您需要增加的性能,那就去吧。否则你应该在硬盘上缓冲。请记住:您只需要足够的性能,而不是完美的性能。