Сборщик мусора для Delphi |
Хочу предложить тему:
Сборщик мусора для Delphi.
По сравнению с java, где объект считается пригодным к удалению, когда на него нет ссылок.
в Delphi довольно не удобно управлять освобождением объектов:
обязательно существует "владелец" объекта, который должен его удалить вызывая метод Free.
Подобная проблема есть и в C++, однако для C++ есть библиотеки со сборщиками мусора.
Делал ли кто-нибудь такой сборщик мусора для Delphi? Есть ли другие пути повышения удобства
управления объектами? ниик
Всего в теме 28 сообщений
Добавить свое сообщение
Отслеживать это обсуждение
- Отладчик
- Как реализовать собственный Debugger для ActiveScript
<<<... | 18—9 | 8—1 Всего сообщений в теме: 28; страниц: 3; текущая страница: 3
№ 8 28-09-2001 16:50 | |
to All.
Да и вообще, как поведёт себя M$, так и будет сделано в Delphi.
"VCL полностью погружена в COM", -- это заверение одного из разработчика Delphi. Совместить приятное (от Borland) с "полезным" (от Microsoft) будет не очень легко.
№ 7 28-09-2001 16:45 | |
/**Max:
Осталось только переписать все компоненты Делфи на COM.
Кто возьмется?
*/
Всё давно уже сделано самой Borland (начиная с Delphi3). Класс TObject имеет методы COM-интерфейсов. Можете посмотреть справку.
Какое-то подобие сборщика мусора уже есть в Delphi.
№ 6 28-09-2001 14:54 | |
>Используйте интерфейсы вместо классов и никакой проблеммы
Осталось только переписать все компоненты Делфи на COM.
Кто возьмется?
№ 5 28-09-2001 11:27 | |
Гупости это всё. Люди! Используйте интерфейсы вместо классов и никакой проблеммы с освобождением у вас не будет. А Java в этом плане вообще глюк сплошной! Зачем, спрашивается, откладывать процесс сборки мусора в долгий ящик? Ждать пока система будет не загружена. А если такого момента вообще не наступит (есть прецеденты)? То ли дело в Delphi ссылок на интерфейс нет - до свидания.
№ 4 28-09-2001 10:31 | |
>и почему у меня нету такой проблемы?
Пока я не работал с Java у меня тоже ее не было
> Delphi эта проблема действительно никак не решается
Я видел (правда не помню где) некий враппер, который использовал Variant для этой цели. Но банального подсчета ссылок мало...
№ 3 28-09-2001 10:16 | |
К сожалению, в Delphi эта проблема действительно никак не решается. Даже если сравнивать не с Java, а с C++, то там можно создавать объекты не только в куче, но и в стеке. И как только такой объект
выходит из зоны видимости, он автоматически удаляется, причём при этом вызывается его деструктор. Самое главное - что это происходит всегда, когда объект выходит из зоны видимости, даже если это происходит из-за возникновения исключения. Так что проблема сбора мусора в Delphi действительно есть, но вот как решать её - непонятно.
№ 2 27-09-2001 22:17 | |
и почему у меня нету такой проблемы?
что бы все было окей, следуй простому правилу "кто объект создает, тот его и убивает". исключения бывают конечно, иногда просто нужно по другому, но они крайне редки.
№ 1 27-09-2001 18:43 | |
Сборщик мусора для Delphi.
<<<... | 18—9 | 8—1 Всего сообщений в теме: 28; страниц: 3; текущая страница: 3
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|