移动应用程序 web api 层中的性能 DI AddScope

Performance DI AddScope in web api layer of Mobile App

所以我创建了一个移动应用程序,该应用程序连接到托管在服务器上的这个网络 api 但我只是在想我是如何启动的 class 在他们那里我有很多我在网络中调用的服务 api.

如果多个用户开始攻击系统,使用添加范围是否有问题。

services.AddScoped<IteamInterface,TeamService>();
services.AddScoped<IPlayerInterface, PlayerService>();
services.AddScoped<IProfileInterface, ProfileService>();
services.AddScoped<IWorkoutsInterface, WorkoutsService>();

典型的服务是

public class WorkoutsService : IWorkoutsInterface
{
    APPDBContext db;
    public WorkoutsService(APPDBContext dBContext)
    {
        db = dBContext;

    }
    public void AddWorkOut(Workout workout)
    {
        db.WorkOuts.Add(workout);
        db.SaveChanges();
    }
  ... DO more db calls
}

它不会对应用程序造成严重影响,但使用添加范围可能会导致我在未来的道路上出现问题。

我在 startup.cs 中有大约 15 项服务正在以这种方式加载,只是担心是否有大约 4 位教练会使用后者

Scoped 是您的情况下正确的生命周期选择。虽然由于减少了 GC 压力,使用 Singleton 生命周期似乎是更好的选择(您不会像当前那样在每个请求上重新创建这些服务),但您可能会在数据库访问上造成瓶颈端,将所有会话排队以使用单个 DbContext 实例。

保留您的应用as-is;如果您遇到性能问题,请仔细分析以找到问题的真正原因,并相应地进行调整。