Re[6]: преимущества неуправляемого С++
От: degor Россия  
Дата: 27.07.04 12:44
Оценка: +1 -1
SYG>Афигейте, мне то что.
Да я офигеваю, офигеваю...

SYG>А, собственно, что именно надо объяснить?

Не надо ничего обяснять, я уже все понял.

SYG>Я разьве говорил что кроме модульных систем никаких других систем не бывает? Конечно бывают как модульные так и не модульные системы, вот, пожалуйста,

SYG>тот же Windows с Unix-ом не модульные и ничего вроде, нормально работают.
Вот только не надо валить в одну кучу современные Windows системы и технологию тридцатилетней давности.
-----------------------------------------------------

А теперь вернемся к вопросу модульных систем.

SYG>>Теперь, собственно, при чем тут сборщик мусора.

Вообще говоря, ни при чем.

SYG>>Пусть есть многомодульная система.

Windows

SYG>>Большинство модулей на момент написания не имели никакого представления друг о друге.

Ну это вряд ли, иначе что они будут друг с другом делать?

SYG>>Модули — единицы компиляции и исполнения программы, они могут динамически загружаться/выгружаться во время работы Программы.

COM servers.

SYG>> Под Программой, можно понимать всю операционную систему, а модули — ее расширения.

COM client (пусть это будет пронрамма, просто программа).

SYG>>Модули создают внутри себя объекты и в виде полиморфных переменных передают их для использования другим модулям,

COM objects.

SYG>>те модули, в свою очередь, могут передать эти полиморфные переменные третьим модулям и т.д..

А захотят ли?

SYG>>Модуль создавший обьект и отдавший его другому модулю в принципе понятия не имеет кто еще пользуется этим объектом и как долго он это намерен делать. А значит модуль-создатель в принципе не может нести ответсвенность за уничтожение им созданного объекта. Но никакой другой модуль тоже в принципе не может нести ответсвенность за уничтожение чужого объекта.

И не надо. Объект сам знает, когда ему убиться.

SYG>>Подсчет ссылок на объект проблемы не решает поскольку, в общем случае, возможны замкнутые петли (циклические) ссылки объектов друг на друга.

А вот для избежания циклических зависимостей в COMе существуют такие механизмы как Connection points. Anyway, циклические зависимости возникают как правило в сильно связанных объектах, т.е. в границах одного-нескольких модулей, да и то по ошибке автора.

Ну и чем вам Windows не модульная система?

SYG>>Утечка памяти в многомодульных системах неизбежна

SYG>>по принципиально неразрешимым причинам.
Хотелось бы ознакомиться с ними.

SYG>>Единственным выходом из этой ситуации является наличие единого на всю операционную систему полноценного сборщика мусора. Сборщик мусора — это не роскошь, и не фича придуманная для ленивых программистов. Сборщик мусора — это осознанная необходимость. Существование многомодульныех систем, модули которых обмениваются друг с другом объектами, невозможно без одного на всех полноценного сборщика мусора.

Не понял, откуда это следует.
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.