
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
Страницы: (245) « Первая ... 178 179 [180] 181 182 ... 244 245 ( Перейти к последнему сообщению ) |
Сообщ.
#2686
,
|
|
|
Ну я бы не сказал, что "ниче" ![]() ![]() Цитата А о каком хочешь кроме C++? Oberon подойдет? В Обероне GC не обязателен, если правильно помню. Там вроде две разные кучи. Добавлено Цитата korvin @ Нет, они их производят (создают объект). Покупатели пользуются, потом выбрасывают, а утилизаторы утилизируют. И такой цикл практически со всем. Странно, но утилизацией объектов не занимаются ни фабрики, ни конструкторы ![]() |
![]() |
Сообщ.
#2687
,
|
|
Цитата --Ins-- @ Да, согласен, такой случай - это гарантированная утечка. Но это частный случай, а сборщик рассматривает его как полный. А более общее и точное описание утечки - это когда не программист никогда не доберется до ресурса, а когда выполняющийся код никогда не доберется до ресурса. А это уже сборщику мусора недоступно, увы. Он только по простейшим случаям специализируется ![]() Что тогда значит словосочетание «выполняющийся код»? Это что, код, который писал не программист, а компилятор сгенерировал автоматически? |
Сообщ.
#2688
,
|
|
|
--Ins--, кстати, на счет всяких оберонов. Ты его использовал? Лучше же Delphi... Или к ним нет никакого достойного GUI?
|
![]() |
Сообщ.
#2689
,
|
|
Цитата D_KEY @ Странно, но утилизацией объектов не занимаются ни фабрики, ни конструкторы ![]() Эээ... не понял, что ты тут имел в виду. |
Сообщ.
#2690
,
|
|
|
Цитата korvin @ Что тогда значит словосочетание «выполняющийся код»? Это что, код, который писал не программист, а компилятор сгенерировал автоматически? Нет, любопытнее вопрос "что значит программист никогда не доберется?" ![]() ![]() А ответ на твой вопрос - утечка или нет - определить можно только проанализировав код. То, что GC считает утечкой безусловно ей является, но это лишь подмножество всех реальных утечек. А все полное множество - это когда программа не собирается и не станет освобождать память от неспользуемых объектов, все больше и больше потребляя, пока в конце концов не упадет с Out of memory |
Сообщ.
#2691
,
|
|
|
Цитата korvin @ Цитата D_KEY @ Странно, но утилизацией объектов не занимаются ни фабрики, ни конструкторы ![]() Эээ... не понял, что ты тут имел в виду. Я имел в виду, что твоя аналогия не подходит к данному случаю. Тот, кто выделяет память не создает объекты - это разные вещи. И ресурсом является не объект, а память. |
Сообщ.
#2692
,
|
|
|
Цитата D_KEY @ --Ins--, кстати, на счет всяких оберонов. Ты его использовал? Нет, не использовал... Цитата D_KEY @ Лучше же Delphi... Я не рассматриваю языки исключительно с академической точки зрения. Паскаль тоже лучше чем Delphi чисто академически. Но на практике для выполнения той работы, что я делаю, Оберон мне не нужен |
![]() |
Сообщ.
#2693
,
|
|
Цитата --Ins-- @ Ты говоришь программист до него доберется? ОК - программа запущена, работает, коллекционирует такие вот лики - добирайся, программист ![]() Я с помощью SLIME подключусь удаленно к работающему образу, исправлю код и скомпилирую новую версию функции в образ. ![]() |
Сообщ.
#2694
,
|
|
|
Цитата korvin @ Я с помощью SLIME подключусь удаленно к работающему образу, исправлю код и скомпилирую новую версию функции в образ. Поступи проще - исправь код в момент его разработки. ![]() |
![]() |
Сообщ.
#2695
,
|
|
Цитата D_KEY @ Я имел в виду, что твоя аналогия не подходит к данному случаю. Тот, кто выделяет память не создает объекты - это разные вещи. Может и не подходит, бог с ней. Когда мы в последний раз играли в аналогии с конструкторами и деструкторами, ничего путного вроде не вышло =) Цитата D_KEY @ И ресурсом является не объект, а память. Но нам нужна не память, а объект. Вот пусть памятью занимается GC, а с объектом мы уж сами разберемся =) |
Сообщ.
#2696
,
|
|
|
Цитата korvin @ Я с помощью SLIME подключусь удаленно к работающему образу, исправлю код и скомпилирую новую версию функции в образ. Да, кстати, с такой логикой и утечки с точки зрения сборщика - не утечки вовсе, программист даже не имея ссылки на объект доберется ![]() |
![]() |
Сообщ.
#2697
,
|
|
Цитата --Ins-- @ Поступи проще - исправь код в момент его разработки. ![]() Если бы это было в 100% случаях возможно, мы бы тут не обсуждали, а программы не глючили бы в принципе. Добавлено Цитата --Ins-- @ Да, кстати, с такой логикой и утечки с точки зрения сборщика - не утечки вовсе, программист даже не имея ссылки на объект доберется ![]() Как раз не доберется. Ссылок-то нет, а память занята. Как освободить? В случае списка слушателей я хотя бы могу узнать, где проблема, почистить список и все, а как мне очистить то, до чего я не могу добраться? |
Сообщ.
#2698
,
|
|
|
Цитата korvin @ Когда мы в последний раз играли в аналогии с конструкторами и деструкторами, ничего путного вроде не вышло =) ![]() Добавлено Цитата korvin @ Вот пусть памятью занимается GC, а с объектом мы уж сами разберемся =) Кстати, он занимается объектами, а не только памятью. |
Сообщ.
#2699
,
|
|
|
Цитата korvin @ а как мне очистить то, до чего я не могу добраться? Да хоть через дамп ![]() |
Сообщ.
#2700
,
|
|
|
Цитата korvin @ Ссылок-то нет, а память занята. Как освободить? В случае списка слушателей я хотя бы могу узнать, где проблема, почистить список и все, а как мне очистить то, до чего я не могу добраться? Все наоборот ![]() Тебе для начала нужно понять, что проблема в этом самом списке задач. Как? А вот поиск "потерянных" ссылок - достаточно легкая задача, потому ты легко найдешь тулзы по вкусу. |