.net - 以低内存使用处理数千个请求和文件流
问题描述
我正在研究.net core API,我必须最终确定复制文件的方法。文件大小可能从 1 MB 到 25 MB 不等。目前,我们每秒获得 20 到 25 k 次点击。是否有任何解决方案或方法可以以低内存使用率处理多个请求。
.net Core中是否有类似transmitFile的东西?
解决方案
首先想到的是,当您处理 I/O 绑定操作(例如 DB 或文件系统)时,将确保您以异步方式处理所有内容。您不希望您的进程停止,因为您正在等待您的硬盘驱动器完成。Dot Net Core 正在大量使用它,语法相当简单,但它背后的概念通常不是很容易理解。如果您不完全清楚,您可以查看诸如https://ayende.com/blog/173473/fun-async-tricks-for-getting-better-performance之类的文章。
然后,最重要的是,如果你想避免在服务器上分配太多内存,你应该小心一点一点地读取文件,而不是一输入代码就加载完整的 25Mb。
异步 + 小缓冲区应该使其尽可能高性能和低占用空间。
推荐阅读
- html - 通过 ngModel 传递插值
- node.js - 使用 grunt-sass 编译 node-sass,我得到错误“致命错误:“原始”参数必须是函数类型。”
- c++ - C++ - 循环无限运行
- python - 如何在 Web 服务器 (Heroku) 中部署的 PyGSheets 上验证 Google Cloud 服务
- crossfilter - 复杂的减少样本不清楚减少的工作原理
- c# - 根据前 6 个字符组合两个列表
- c++ - QGraphicsPixmapItem 不显示在 QGraphicsView
- mysql-workbench - 带有特殊字符的 MySQL 排序查询
- c++ - 我可以做些什么来改进指针向量中的搜索?
- c# - 如何在正则表达式中传递第二次出现的空格?