Есть ли будущее у DELPHI?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.43] |
|
|
Правила раздела:
| Страницы: (245) « Первая ... 170 171 [172] 173 174 ... 244 245 ( Перейти к последнему сообщению ) |
Есть ли будущее у DELPHI?
|
Сообщ.
#2566
,
|
|
|
|
Цитата D_KEY @ Другие объекты в своих деструкторах(а деструкторы локальных объектов вызываются автоматически). А если объект шарится между несколькими другими объектами, то используют подсчет ссылок, это дает некоторый оверхед по сравнению с использованием ссылок в случае GC, но зато не требует этого самого GC, позволяет точно сказать, когда будет уничтожен объект(в т.ч. и когда будут освобождены ресурсы - память, файлы, etc.). А что с циклическими ссылками? И опять же, это не про Делфи. |
|
Сообщ.
#2567
,
|
|
|
|
Цитата korvin @ А что с циклическими ссылками? Их нет А вообще, есть слабые счётчики... |
|
Сообщ.
#2568
,
|
|
|
|
Цитата korvin @ А что с циклическими ссылками? И опять же, это не про Делфи. Они очень редки. Разруливаются руками через слабые ссылки. Как, собственно, weak в objective-C, если знаешь такой Для поиска неправильных циклов есть специальные тулзы. От обычных поисковиков утечек вроде valgrind до специальных режимов сборщиков мусора. Добавлено Но в С++ не так много "голой" динамической памяти. А та, что есть обычно внутри объектов, контейнрах и т.д., которые создаются уже локально, а не в динамической памяти. |
|
Сообщ.
#2569
,
|
|
|
|
Цитата D_KEY @ Для поиска неправильных циклов есть специальные тулзы. От обычных поисковиков утечек вроде valgrind до специальных режимов сборщиков мусора. Только си, только хардкор! |
|
Сообщ.
#2570
,
|
|
|
|
Цитата Астарот @ Только си, только хардкор! ![]() Пфф, какой же это хардкор? Вот машкод на перфокартах -- это да... |
|
Сообщ.
#2571
,
|
|
|
|
Цитата Астарот @ Цитата D_KEY @ Для поиска неправильных циклов есть специальные тулзы. От обычных поисковиков утечек вроде valgrind до специальных режимов сборщиков мусора. Только си, только хардкор! ![]() По сути-то есть что сказать? Это делается раз в тысячелетие. Ну или если бага по утечке нашлась |
|
Сообщ.
#2572
,
|
|
|
|
По сути могу сказать только, что все эти пляски с бубнами "раз в тысячеление" от мемликов почему-то не спасают.
|
|
Сообщ.
#2573
,
|
|
|
|
Собственно, в языках с GC так же периодически следят за утечками и начинают расставлять всяческие WeakReference/SoftReference
Добавлено Цитата Астарот @ По сути могу сказать только, что все эти пляски с бубнами "раз в тысячеление" от мемликов почему-то не спасают. Можно подумать что-либо спасает от других багов А GC от утечек не спасает |
|
Сообщ.
#2574
,
|
|
|
|
Цитата Астарот @ По сути могу сказать только, что все эти пляски с бубнами "раз в тысячеление" от мемликов почему-то не спасают. Ну если их не фиксить, то как не банально бы это звучало, но да не спасают |
|
Сообщ.
#2575
,
|
|
|
|
Цитата D_KEY @ А GC от утечек не спасает Ну, с точки зрения семантики языка именно от утечек то спасает, но да, там свои приколы и слабые ссылки всё равно нужны. |
|
Сообщ.
#2576
,
|
|
|
|
Цитата MyNameIsIgor @ Ну, с точки зрения семантики языка именно от утечек то спасает С точки зрения семантики языков с GC памяти, как ресурса, вообще не существует, как правило Или я ошибаюсь?Вот от чего GC спасает точно, так это от висячих ссылок. Ну и от ручной работы с памятью Но вот обязательный сборщик в императивных языках кажется мне "баловством". Вот в функциональщине/логических языках GC требуется для того, чтобы не гадить в семантику языка. Хотя... Я вот что-то подумал. Не избавляет ли ленивость Haskell'я от циклических ссылок? И нельзя ли там обойтись подсчетом ссылок? korvin, что скажешь? Добавлено Цитата D_KEY @ Не избавляет ли ленивость Haskell'я от циклических ссылок? Хотя не, глупость подумал... |
|
Сообщ.
#2577
,
|
|
|
|
Цитата D_KEY @ С точки зрения семантики языков с GC памяти, как ресурса, вообще не существует, как правило Или я ошибаюсь?Допустим, что не ошибаешься, ну и что? Утечки памяти при использовании GC возможны только в случае ошибки в архитектуре и/или реализации GC. |
|
Сообщ.
#2578
,
|
|
|
|
Цитата D_KEY @ Не избавляет ли ленивость Haskell'я от циклических ссылок? И нельзя ли там обойтись подсчетом ссылок? korvin, что скажешь? от циклических ссылок, насколько я понимаю, избавляет тотальная иммутабельность. |
|
Сообщ.
#2579
,
|
|
|
|
Цитата D_KEY @ Но вот обязательный сборщик в императивных языках кажется мне "баловством". Почему? Разве императивный подход как-то обязывает управлять освобождением памятью вручную? |
|
Сообщ.
#2580
,
|
|
|
|
Цитата korvin @ Утечки памяти при использовании GC возможны только в случае ошибки в архитектуре и/или реализации GC. да вот нет, утечки памяти возможны и при ошибках в прикладном коде. Банально сохраняем ссылки на локальный объект в глобальном листе и забывает удалять эти ссылки, вот те банальная утечка. В .NET есть частный (но очень распространенный) случай: локальный объект подписывается на событие, которое генерит глобальный. А отписаться - забывает. Добавлено Так что D_KEY правильно сказал, GC спасает только от висячих ссылок, но не от мемликов. |