информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыSpanning Tree Protocol: недокументированное применениеПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / site updates
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
и что она мешает следить за утечками? 30.08.04 19:10  Число просмотров: 2644
Автор: Killer{R} <Dmitry> Статус: Elderman
Отредактировано 30.08.04 19:14  Количество правок: 1
<"чистая" ссылка>
Вообще честно скажу - я почти не юзал языки с GC. Предпочитаю С++ при необходимости просто юзаю доп библиотеки. Теперь опишу что есть GC в моем понимании когда его существование вообще оправдано - я пишу оператор new создаю объект юзаю его затем перестаю юзать - и GC понимает что объект не нужен и освобождает память. Причем важно чтобы:
1) Не было глюков. Те пофиг какие я там структуры/списки наверну, даже если объект нужен тогда когда на него нет ссылок в программе он должен быть. Пример - делаю new CoolObject() где в конструкторе CoolObject создается поток которы чето делает. И все - ссылок в проге на сам объект нигде нет. Почему мне так захотелось сделать- это мой личный вопрос. Если такая или подобюная конструкция заглючит с GC - это баг GC и это значит что такой GC не имеет права на существование.
2) Был неплох в производительности. Конечно понятно что большие проекты для которых и нужен GC работают на больших компах но не на бесконечно больших же... Кроме того .Net вроде как позиционируется как платформа для любых прог од винду. Даже для тетриса.
3) Что такое GC и зачем он воще нужен? Я создаю объект затем перестаю его юзать и эта фигня сама определяет что я его не юзаю и все освобождает. Что имеем на практике - прочитав статью которая тут гдето промелькнула описание .Net C++ я просто в ужас пришел от перспективы что мне придется такое юзать когда нить. Это получается что теперь для того чтоб более гарантированно освобождались ообъекты надо вызывать и их деструктор напрямую.. и еще удалять их.. и еще давать подсказку GC на уборку мусора а то хрено его знает когда он вздумает его убрать. Спрашивается нахрена оно мне такое надо? Которое непонятно когда и как освобождает ресурсы. Прям не язык программирования а женская логика какаято. Вот уж действительно вершина ООП - инкапсуляция глюков. Чем ЭТО лучше старого доброго delete который хоть и надо обязательно вызывать, но по крайней мере я могу быть уверен что он сработает здесь и сейчас. Т.е. налицо явное усложнение языка.
4) Положим забьем на усложнение, - и не такое видали. GC ведь обещает уменьшение вероятности утечек памяти (при условии его корректного юзание) если вдруг программер забудет сделать удаление объекта сам где нить. Теперь вопрос - а стоит ли овчинка выделки? Является ли утечка памяти такой острой проблемой чтобы переделывать полностью работу с памятью? Имхо нет. Глюк этот конечно довольно трудно нахождаемый, но уж точно никаких security проблем за собой не ведет.
<site updates> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach