Мне было интересно, какие методы лучше всего создавать при создании объектов, выполняя LINQ в C#. Например, я понимаю, что когда я открываю соединение с помощью LINQ я должен поставить объект модели в использовании заявление, как это:Минимизация использования ОЗУ созданными объектами во время выполнения в C#
using(var ctx = new mymodel())
{
}
Теперь, что объекты, которые являются EF-классы?
Они не реализуют IDisposable интерфейс, таким образом, я не могу сделать что-то вроде этого, при создании такого объекта, как это, например:
using(var user = new Users())
{
}
Но когда действие называется так:
public ActionResult InsertUser()
{
var user = new Users();
}
У меня нет четкого представления о том, что происходит с этим объектом после завершения вставки в db. Остается ли этот объект выделенным в памяти или он будет выпущен? Если нет, то каковы лучшие практики для выпуска памяти, когда они больше не нужны.?
С другой стороны есть статические переменные, а также ...
Итак, чтобы подвести вещи, мои вопросы:
какие лучшие практики для освобождения памяти при создании экземпляра объекта класса?
Является ли реализация IDisposable интерфейса для каждого класса, который у меня есть хороший выбор?
Когда статическая переменная создается в .NET MVC, каков наилучший способ освобождения памяти от таких переменных?
Тот же вопрос касается объекта Session?
P.S. Ребята, я был бы очень признателен, если бы вы все читали это, чтобы опубликовать свое мнение или опубликовать некоторые полезные ссылки для некоторых публикаций в документах/блогах, чтобы я мог расширить свои горизонты.)
У вас есть проблема с потреблением памяти? – trailmax
Объекты собираются, когда они выходят за рамки. Если никакие области активного кода не ссылаются на объект или дерево объектов, которое косвенно ссылается на него, оно будет собрано. Вам нужно только реализовать 'IDisposable' на классах, у которых есть неуправляемые ресурсы, которые необходимо очистить. – Amy
@trailmax Да, это именно та проблема, я не знаю, откуда она взялась, но мне нужно разобраться, чтобы максимизировать эффективность моего кода. =) – User987