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



所以我创建了一个移动应用程序,该移动应用程序连接到服务器上托管的这个web api中,但我只是在想我是如何完成启动类的,在它们中,我在web api中调用了大量服务。

如果多个用户将开始访问系统,那么在这种情况下使用Add Scope是否不好。

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实例。

保持你的应用程序原样;如果遇到性能问题,请仔细分析,找出问题的真正原因,并进行相应的调整。

最新更新