Детали процесса финализации
Детали процесса финализации
Чтобы не делать лишней работы, следует помнить о том, что целью метода Finalize() является гарантия освобождения неуправляемых ресурсов .NET-объекта при сборке мусора. Поэтому при cоздании типа, не использующего неуправляемые элементы (а такая ситуация оказывается вполне типичней), от финализации будет мало пользы. На самом деле, при разработке своих типов вы должны избегать использования метода Finalize() по той очень простой причине, что финализация требует времени.
При размещений объекта в управляемой динамической памяти среда выполнения автоматически определяет, поддерживает ли этот объект пользовательский метод Finalize(). Если указанный метод поддерживается, то объект обозначается, как требующий финализации, а указатель на этот объект сохраняется во внутренней очереди, которую называют очередью финализации. Очередь финализации представляет собой таблицу, поддерживаемую сборщиком мусора и содержащую все объекты, для которых перед удалением из динамической памяти требуется финализация.
Когда с точки зрения сборщика мусора приходит время удалить объект из памяти, проверяются элементы очереди финализации, и соответствующий объект копируется из динамической памяти в другую управляемую структуру, которую вызывают таблицей элементов, доступных для финализации. В этот момент создается отдельный поток, задачей которого является вызов метода Finalize() при следующей сборке мусора для каждого объекта из таблицы элементов, доступных для финализации. С учетом этого становится. ясно, что для окончательного уничтожения объекта потребуется как минимум две процедуры сборки мусора.
Таким образом, хотя финализация объекта и гарантирует, что объект сможет освободить неуправляемые ресурсы, по своей природе эта процедура оказывается недетерминированной и, в связи с происходящими "за кулисами" дополнительными процессами, достаточно медленной.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Опишите детали
Опишите детали Подробное описание вызывает больше доверия, чем общие слова. Это видно и на примере рекламы шоколада. Не забывайте также, что конкретные сведения о ваших товарах интересуют покупателей гораздо больше, чем информация о компании или бренде. Авторы любого
1.27. Представление видов «Основной — детали» с помощью UISplitViewController
1.27. Представление видов «Основной — детали» с помощью UISplitViewController Постановка задачи Необходимо максимально эффективно использовать большой экран iPad, представив на нем два расположенных рядом контроллера
Детали: Ускоряем JavaScript
Детали: Ускоряем JavaScript Автор: Хендерсон, КэлКажется, всего несколько дней назад мы рассказывали вам об истории Flickr, и вот — статья, написанная главным разработчиком этой компании Кэлом Хендерсоном. Статья довольно специфичная — это вполне конкретные советы по решению
2.5. Управление режимом отображения детали
2.5. Управление режимом отображения детали При работе в КОМПАС-3D LT доступно несколько типов отображения модели: каркас, отображение без невидимых линий или с тонкими невидимыми линиями и полутоновое отображение. Чтобы выбрать тип отображения, вызовите команду Вид |
3.1. Формирование основания модели детали
3.1. Формирование основания модели детали В общем случае порядок создания модели включает формирование основания, приклеивание и вырезание дополнительных элементов, построение массивов элементов и зеркальное копирование, создание дополнительных конструктивных
3.2. Добавление и удаление материала детали
3.2. Добавление и удаление материала детали Добавление материала детали — это создание в ней новых тел, а также приклеивание к имеющемуся телу (телам) новых элементов. Тело детали — это область, ограниченная гранями детали. Считается, что эта область заполнена однородным
3.5.1. Определение и задание свойств детали
3.5.1. Определение и задание свойств детали Щелкните правой кнопкой мыши в любом пустом месте окна модели. Из контекстного меню вызовите команду Свойства (рис. 3.10). На Панели свойств в поле Обозначение введите обозначение (например, ПМИГ ХХХХ10) и наименование детали (Опора)
4.1. Изображение плоской детали. Нанесение размеров
4.1. Изображение плоской детали. Нанесение размеров Рассмотрим задание 1, в котором необходимо завершить изображение плоских деталей по представленным половинкам, ограниченным осью симметрии, а также нанести размеры и указать их количество. Перед выполнением задания
4.2. Создание трехмерной модели и построение горизонтальной проекции детали
4.2. Создание трехмерной модели и построение горизонтальной проекции детали Правила изображения предметов устанавливает ГОСТ 2.305-68. Изображения предметов должны выполняться по методу прямоугольного проецирования.При этом предмет предполагается расположенным между
4.8. Изображение плоской детали с элементами скруглений
4.8. Изображение плоской детали с элементами скруглений Система КОМПАС-3В LT предоставляет пользователю мощные средства для выполнения геометрических построений.Вспомогательная прямая может быть построена девятью способами, отрезок и окружность — шестью. При
7.1. Использование детали-заготовки для имитации создания сборки
7.1. Использование детали-заготовки для имитации создания сборки Рассмотрим пример моделирования крепления оптической детали в оправе резьбовым кольцом по исходным данным рис. 6.10. На первом этапе необходимо построить модели трех деталей.При создании моделей следует