» Главная
eXcode.ru » Статьи » .NET
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 17







Сборка мусора




Что такое сборка мусора?

Сборка мусора - это механизм, позволяющий компьютеру определить, когда объект более недоступен. Тогда он автоматически освобождает память, используемую этим объектом (вызывая функцию finalizer, реализованную пользователем). Некоторые сборщики мусора (в т.ч. используемый в .NET), "сжимают" память, уменьшая количество ресурсов, используемых вашей программой.

Как наличие сборщика мусора влияет на написание кода?

Для большинства программистов, наличие сборщика мусора (и использование его объектов) означает, что они больше не должны заботиться об освобождении памяти, подсчете ссылок на объекты, даже когда они используют сложные структуры. Однако это может потребовать изменения в стиле программирования, например, когда вы обычно освобождаете системные ресурсы (файловые указатели, блокировки и т.д.) в том же участке кода, где и освобождаете память для объекта. При наличии сборщика мусора, вы должны реализовать метод, который освобождает системные ресурсы (которые находятся под управлением вашей программы), и позволить сборщику мусора освободить память.

Могу я не использовать память, контролируемую сборщиком мусора?

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

В CLR также поддерживается понятие Тип-Значение (ValueType) - понятие, подобное классам, за исключением того, что такие значения размещаются на стеке (а не в куче), поэтому автоматически удаляются, когда завершается выполнение процедуры, в которой они определены. Таким образом реализуются структуры в C#.

Managed Extensions для C++ позволяют вам указать, где создавать объекты. Если вы объявляете управляемый класс, указывая ключевое слово __gc, то он будет размещен в куче памяти, контролируемой сборщиком мусора. Если вы не использовали ключевое слово __gc, то поведение будет аналогично обычным объектам C++, которые создаются в куче памяти C++ и освобождаются, используя метод "free".

Источник: www.cyberguru.ru
К началу статьи





Добавил: Дата публикации: 2007-10-16 08:59:58
Рейтинг статьи:3.00 [Голосов 10]Кол-во просмотров: 2702

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какие книги вам больше нравятся?
Приключения
7% (12)
Фантастика и фэнтези
30% (50)
Детективы
5% (8)
Ужасы
0% (0)
Юмористические
1% (2)
Учебники и энциклопедии
12% (20)
Спец. литературу
22% (37)
Я не умею читать :(
17% (28)
Другие
5% (9)

Проголосовало: 166
Почемy ломание программ лучше секса.
1. Ломать программы можно более 6 часов непрерывно.
2. У программ не бывает периодов, когда их нельзя ломать.
3. Тебе не надо всякий раз покупать новый отладчик и дизассемблер чтобы сломать очередную программу.
4. Когда ты ломаешь программу она y тебя не спрашивает, сколько программ ты сломал до нее и во сколько лет сломал первую программу.
5. Можно ломать две, три и более программы одновременно.
6. Одновременно с ломанием программы можно кушать, смотреть телевизор и читать книжку.
7. Чем быстрее ты сломаешь программу, тем лучше.
8. Программа никогда не скажет "А прошлый кpакеp меня дольше ломал."
9. Ломать программы можно в присутствии друзей, родителей и преподавателей.
10. Когда ты сломал программу, то можешь (и хочешь) приступить к слому другой уже через пару минут.
11. После того как ты сломал программу y тебя не болит спина и не заплетаются ноги.
12. Одну программу достаточно сломать один раз.
13. Тебя не заставляют жениться на сломанной программе.
14. Кpак к программе можно подарить своим друзьям или продать.
15. Если тебе вдруг надоело, то ты можешь остановиться и продолжить ломать программу на следующей неделе.
Рейтинг: 9.4/10 (64)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » .NET