Экземпляры в переменной приложения

Правильно ли создавать экземпляры классов и сохранять их в переменных приложения, чтобы затем использовать их и не создавать экземпляры в каждом запросе?

Например: создавать экземпляр DbContext и использовать его непосредственно из переменной de Application каждый раз, когда мне нужно.

А это значит реальное улучшение производительности?

В глобальной асе:



    protected void Application_Start()
    {
    Application["db"] = new Models.dbContext();
    }

Используя тогда:



    db = (dbContext)HttpContext.Current.Application["db"];

1 ответ

DbContextS почти всегда должны быть созданы и удалены по мере необходимости. Пул соединений и различные другие скрытые оптимизации означают, что это довольно эффективно. Ото, если вы используете HttpClientВы, вероятно, должны стремиться создать единый для всех вызовов (иначе он не сможет поддерживать соединение). Вам решать, храните ли вы его в переменной "Application" или просто в виде глобальной статики. Но HttpClient является исключением - если вам не нужно поддерживать состояние в течение всего жизненного цикла вашего приложения или если есть какая-то очень специфичная для реализации причина, есть веские причины избегать наличия переменных с глобальной областью действия и / или временем жизни.

Другие вопросы по тегам