Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






Сборка мусора в .NET



Еще одним достаточно сильным преимуществом платформы .NET является полное снятие вопроса о сборке мусора с программиста. Что имеется в виду. К примеру, вы создаете некоторый класс, а потом по ходу кода создаете объекты этого и других классов. В это время в памяти компьютера каждый раз при создании объектов выделяется некоторая часть этой памяти. Это как в коробку складывать книги – с каждой вновь положенной книгой свободного места в коробке становится все меньше. В какой то момент вся коробка будет заполнена, а вам еще требуется поместить в неё несколько книг…

Так и с памятью. Существует вероятность, что в некоторый момент весь допустимый объем памяти израсходуется. И при попытке создания нового объекта мы получим проблемы в работе приложения. И самое приятное при программировании под .NET это отсутствие необходимости вручную удалять объекты после их использования. Все это дело платформа .NET выполняет сама.

Ну а при чем здесь понятие «сборки мусора»? Мусором как раз считается та часть данных, которая больше не используется в работе приложения. А служба, которая отвечает за сборку мусора называется GC (garbage collector). GC периодически освобождает память, удаляя объекты, которые уже не будут востребованы приложением — то есть производит сборку мусора.

Реально во время работы вашего приложения, параллельно (в отдельном потоке) работает сборщик мусора. И как только .NET обнаруживает, что управляемая куча данного заполнилась до некоторого предела, она вызывает сборщик мусора. Выполняется проход по всем переменным (объектам), находящимся в контексте исполняемого кода, и проверяет ссылки на объекты, расположенные в области кучи. Любой объект, на который нет ни одной ссылки, помечается кандидатом на удаление.

К примеру, вы создали класс MyClass. После в коде создали экземпляр этого класса используя ключевое слово new.

    using System;

class Program
{
    static void Main()
    {
        Myclass myClass = new Myclass("Первый");
        myClass = new Myclass("Второй");
    }
}

class Myclass
{ 
    String name;

    public Myclass(string name)
    {
        this.name = name;
    }
}

В это время в управляемой куче выделилась некоторая область памяти под только что созданный объект, на который мы указали ссылку myClass используя оператор «=». Имеем переменную (ссылку) myClass в стеке и соответствующий ей объект типа MyClass в управляемой куче (рисунок 1).


Рисунок 1. Создание первого объекта

Но что произойдет, если дальше в коде мы создадим еще один объект типа MyClass и ссылку на него поместим в нашу же переменную myClass? Получится вот что. В куче создастся еще один объект. В стеке находится по-прежнему одна переменная myClass, которая уже связана со вторым объектом. Но первый объект продолжает существовать в куче! Другое дело, доступиться к нему мы уже не можем. И не можем потому, что не располагаем ссылками на этот объект (рисунок 2) (конечно, ссылка (переменная) myClass не переместилась по стеку, это только на рисунке для правильного сопоставления новому объекту).


Рисунок 2. Создание второго объекта

Вот сейчас как раз сборщик мусора и обнаружит, что на первый объект в куче нет ссылок. А потому этот бесхожий объект будет выставлен кандидатом на удаление и будет удален при первой же возможности. Следует знать, что хотя сборщик мусора работает постоянно, пока работает ваше приложение, удаление объектов происходит не постоянно и непрерывно, а лишь по мере надобности, зачастую при нехватке памяти. Но вместе с тем, мы не можем точно сказать, когда именно CLR вновь решит освободить память.

В следующей статье мы рассмотрим некоторые детали алгоритма работы сборщика мусора и разберем возможные варианты по ручному управлению освобождения памяти.



Больше информации читайте по теме:



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок