首页 > 解决方案 > 以低内存使用处理数千个请求和文件流

问题描述

我正在研究.net core API,我必须最终确定复制文件的方法。文件大小可能从 1 MB 到 25 MB 不等。目前,我们每秒获得 20 到 25 k 次点击。是否有任何解决方案或方法可以以低内存使用率处理多个请求。

.net Core中是否有类似transmitFile的东西?

标签: .netasp.net-core.net-core

解决方案


首先想到的是,当您处理 I/O 绑定操作(例如 DB 或文件系统)时,将确保您以异步方式处理所有内容。您不希望您的进程停止,因为您正在等待您的硬盘驱动器完成。Dot Net Core 正在大量使用它,语法相当简单,但它背后的概念通常不是很容易理解。如果您不完全清楚,您可以查看诸如https://ayende.com/blog/173473/fun-async-tricks-for-getting-better-performance之类的文章。

然后,最重要的是,如果你想避免在服务器上分配太多内存,你应该小心一点一点地读取文件,而不是一输入代码就加载完整的 25Mb。

异步 + 小缓冲区应该使其尽可能高性能和低占用空间。


推荐阅读