在我的ASP.NET-MVC应用程序中,我使用静态变量将信息存储在静态类中。但之后ASP.NET会回收所有数据和线程,并且我的"App_Start"-procedure将在清理后调用。
我用HangFire解决了备份任务的问题。但是要生成static-class,我需要很长时间。循环之后的第一个请求必须等待静态类的设置。
为什么要延迟?我正在使用EntityFramework,为了正确处理,我需要数据库中的所有记录及其关系。因此,我使用静态类保存所有记录,并使用数据库作为第二个策略。
我不知道我可以做些什么来提高性能。我的第一个想法是序列化完整的数据-但是反序列化具有2K或更多记录的ArrayList的性能如何?有没有办法防止我的静态ArrayList被回收?
发布于 2016-09-01 03:32:17
我建议您使用ASP.NET的application cache机制。然而,默认情况下,缓存仍然在内存中,并在进程中维护,因此应用程序池回收仍然会将其清除。解决方案是更改应用程序缓存的存储位置,使其处于不同的进程中。有关如何存储应用程序缓存的一些建议,请参阅this answer。
简而言之,我不建议尝试避免应用程序池回收,因为它真的可以为您省去很多麻烦。
https://stackoverflow.com/questions/39257496
复制相似问题