[英]Improve Bottleneck Performance in ASP.NET [core] System
我们正在开发一个基于 ASP.NET 和 ASP.NET Core 3.1 的系统。 最近,在基于负载测试进行改进时,我们发现了一个 API-Endpoint,它可以处理文件上传和一些 JSON 有效负载(它是一个多部分请求)。
虽然这个端点成为瓶颈并不奇怪,但我认为还有一些改进的余地。
关键路径似乎是文件上传管理。 最多可以上传 25 个文件(我们的负载测试发送一个 2MB 文件,因为这是平均值)。
The endpoint takes the IFormFile
s, and assigns its Stream-Contents to a byte[]
property of a DTO which then gets sent to another service based on .NET (not core) because it needs thje SharePoint SDK which does not support .NET Core:( .
所述服务将byte[]
读取到 Stream 中,该 Stream 被发送到最终存储文档的 SharePoint。
我猜(不知道tbh) Request → IFormFile.Stream
→ byte[]
byte[]
Stream
→ SharePoint链可以在没有转换的情况下实现。
这可能吗?如果可以:它会提高整体操作的性能吗? 换句话说:是否可以通过对中间 WebService 的另一个请求来获取IFormFile
的stream内容? (这有意义吗)
回答我自己的问题:问题是在 SharePoint 中创建文件夹(为每个带有附加文件的新记录完成一次)。
它很慢。 (负载时)
我们通过实现一个 BackgroundJob 解决了这个问题,它预先在 SharePoint 中预先创建了一定数量的文件夹,以便在处理请求时不需要这一步。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.