Сборщик мусора для Delphi |
Хочу предложить тему:
Сборщик мусора для Delphi.
По сравнению с java, где объект считается пригодным к удалению, когда на него нет ссылок.
в Delphi довольно не удобно управлять освобождением объектов:
обязательно существует "владелец" объекта, который должен его удалить вызывая метод Free.
Подобная проблема есть и в C++, однако для C++ есть библиотеки со сборщиками мусора.
Делал ли кто-нибудь такой сборщик мусора для Delphi? Есть ли другие пути повышения удобства
управления объектами? ниик
Всего в теме 28 сообщений
Добавить свое сообщение
Отслеживать это обсуждение
- Отладчик
- Как реализовать собственный Debugger для ActiveScript
28—19 | 18—9 | ...>>> Всего сообщений в теме: 28; страниц: 3; текущая страница: 1
№ 28 27-12-2002 13:52 | |
2 Ник, №27
>>> Ну память, то довольно дешёвая
Вообще то, речь шла о мусоре и его уборщиках. :)
№ 27 27-12-2002 11:45 | |
>>>однако в условиях экономического спада сборщики мусора могут также испытывать проблемы ...
Ну память, то довольно дешёвая
№ 26 27-12-2002 11:19 | |
Найдено в интернете :)
"Орудия труда у сборщиков мусора самые примитивные: топор, чтоб можно было вырубить вмерзший в лед мусор, багор да веревка, чтоб не потонуть.
Самым грязным у сборщиков мусора считается ..."
"... на реалиях парижской жизни :D Я помню меня будили не дворники, но таки сборщики мусора, с шумом опрокидовавшие урны в пасти мусоросборочных машин."
"Такой диалог нередко можно услышать в частных секторах южной столицы между жителями и сборщиками мусора.
Дотошные же сборщики мусора не понимают, а скорее не приемлют такой целесообразной переработки отходов, поэтому и происходят постоянные стычки с ..."
"... по областному центру оборудовано 65 контейнерных площадок, а 127 улиц обслуживаются сборщиками мусора по графику, тошнотворный запашок там почти не ..."
"Осенние порывы ветра и добросовестные сборщики мусора, набивающие этот контейнер до отказа делают свое дело."
"Пароочистители, поломоечные машины, вакуумные сборщики мусора, автоматизированнные самоходные подметающие машины, установки самообслуживания, мойки ..."
"Сборщиков мусора можно узнать сразу - по ярким оранжевым жилетам.
Сборщики мусора убирают магистрали с 8 до 17 часов, каждый день, а недавно их стали привлекать и по выходным дням."
"В том, что для других людей является мусором могут быть деньги, однако в условиях экономического спада сборщики мусора могут также испытывать проблемы ..."
№ 25 23-11-2001 21:15 | |
Проблема, пока что, состоит из двух частей:
1. Сборка мусора внутри работающего приложения. Тут я вижу, как минимум, одну большую проблему - несоответствие высокоуровневых языков реальным процессам. Например Паскальное:
function ...
var
i: integer;
begin
//что то делаем
for i:=0 to value do
begin
//опять что-то делаем
end;
//еще что-нибудь
end;
Насчет "i". На ассемблере это скорее всего(в зависимости от компилятора) цикл с cx:=value и прокрутка до 0. С точки зрения кода отсутствие "i" вне цикла вещь абсолютно нормальная, с точки зрения Паскаля мы должны видеть "i" за рамками цикла. СИ-шный вариант реализации цикла создает впечатление участия двух-трех переменных с, якобы, выполнением арифметических действий по изменению счетчика.
Так что здесь начинать надо с языка, потому что мы можем бороться с тем, чего в действительности нет. Надо четко определятся с областями видимости и эта четкость должна быть заложена в языке.
2. Сборка мусора после уничтожения процесса. Вот эту проблему я вообще не догоняю, когда, например в 9х, после убиения процесса за ним остаются висящие ресурсы. Это дело ОС, у нее запросили место под процесс, он завершился - значит ОС должна убить все, относящееся к убитому процессу. В конце-концов лучше чем ОС никто не знает, что она выделяла под процесс.
№ 24 22-10-2001 11:13 | |
сборка мусора не является частным случаем ВМ. Пример - язык D. Компилируемый, но со сборщиком мусора.
№ 23 19-10-2001 19:20 | |
№ 22 17-10-2001 18:33 | |
№ 21 17-10-2001 11:32 | |
Можно использовать интерфейсы. Как только количество ссылок на интерфейс обнулится объект будет уничтожен.
№ 20 03-10-2001 10:24 | |
№ 19 02-10-2001 18:08 | |
Привет всем!
Может кто нибудь привести пример по работе с классовым методом
TObject.NewInstance
и методом
TObject.FreeInstance.
Как раз для выделения памяти для "контрольного" рождения объектов, в своем выделенном участке памяти, а не динамически в куче.
Инересуют вопросы выделения памяти экземплярам классов (при
переопределении TObject.NewInstance).
Спасибо.
28—19 | 18—9 | ...>>> Всего сообщений в теме: 28; страниц: 3; текущая страница: 1
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|