|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Результаты опроса: Какой метод сбора мусора лучше? | |||
Сбор по обнулению счетчика ссылок | 11 | 50.00% | |
Сбор по таймеру | 0 | 0% | |
Сбор по ошибке выделения памяти | 3 | 13.64% | |
Сбор по обнулению счетчика ссылок(+ дефрагментация по ошибке выделения) | 5 | 22.73% | |
Иное | 3 | 13.64% | |
Голосовавшие: 22. Вы ещё не голосовали в этом опросе |
|
|
Опции темы | Поиск в этой теме |
17.04.2011, 00:20 | #1 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Опрос: Сборщик мусора
в общем решил поразмыслить заранее:
у меня в голове три варианта: 1)Сбор по обнулению счетчика ссылок. +отсутствие лишней занятой памяти. +если память не удалось выделить, то сразу ясно, что её не хватило. -частые обращение к менагеру памяти. 2)Сбор по таймеру +не такое активное обращение к менагеру памяти. -при неудачном выделении памяти, возможна ситуация что на самом деле памяти хватит -висящая занятая память(до таймера) 3)Сбор по неудачному выделению памяти +редкое обращение к менагеру -огромные висяки памяти -двойная попытка выделения памяти(в этом случае считаю рационально это делать) или есть иные предложения? скажу сразу, сбор осуществляется на основе подсчета ссылок. ЗЫ: Цитата:
еще родилась мысль совместить третий с первым методом: но в третьем вместо чистки кучи, делать её дефрагментацию. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
17.04.2011, 00:49 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
сейчас мелькнула мысль, а почему б программисту выбор не предоставить?
включать и настраивать сборщик как надо. соответственно у сборщика сделать событие неудачного выделения памяти(что на каждом new не писать обработчик) ЗЫ:помоему как всегда, самая мудрая мысль приходит после создания темы может тогда удалить тему? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
17.04.2011, 05:59 | #3 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
если памяти вобще мало, то 1), если вобще много, то 3), если хрен знает, то:
4) сбор внутри потока с приоритетом THREAD_PRIORITY_IDLE > а почему б программисту выбор не предоставить? пусть думает о высоком
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
17.04.2011, 08:11 | #4 |
Форумчанин
Регистрация: 10.09.2009
Сообщений: 352
|
Не, только по обнулению счётчика ссылок. Можно включить дефрагментацию по ошибке выделения, полезная вещь.
По таймеру и по ошибке - бред. Сам в минусах указал. Подумай, такие минусы какбэ намекают, что эти варианты не катят. Частое обращение в менеджеру памяти при подсчёте ссылок - не проблема. Просто у каждого объекта должно быть поле, хранящее число ссылок. При удалении ссылки мы уменьшаем его значение, и если оно стало равно нулю, производим очистку. veniside, памяти много не бывает |
17.04.2011, 11:19 | #5 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Цитата:
а насчет дефрагментации надо еще подумать, ибо она заблокирует потоки напрочь пока делается, а это к сожалению плохо... Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
17.04.2011, 13:41 | #6 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
А вообще, вы просто поразмышлять или же какая то задача стоит?
|
17.04.2011, 14:26 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в данном случае размышления по поводу что же выбрать
в интерпритаторе применю. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
17.04.2011, 14:52 | #8 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Можно вариант - когда превышен определенный объем - скажем более 30% от всей доступной.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
17.04.2011, 15:47 | #9 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Все конечно радужно и я за подсчет ссылок, только вот не пойму причем тут дефрагментация памяти? Ведь по сути, операционная система, на которой будет запущен ваш интерпретатор, и будет отвечать за (де)фрагментацию памяти, или вы будете работать с памятью не через кучу предоставленную системой? Или я чего то не понимаю?
|
17.04.2011, 16:18 | #10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
да я вот чето думаю про дефрагментацию кучи я вообще загнул
ну значит всетаки ссылки самое верное, ну впринципе да, не нужно никаких гуляний по куче. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа по уборки мусора. Где недоработка?! | Mrbober | Общие вопросы C/C++ | 2 | 19.02.2011 15:27 |
Опрос программистов! | arch-vile | Свободное общение | 25 | 29.04.2010 17:41 |
Чистка реестра от мусора | Gerzs | Софт | 1 | 21.04.2010 09:57 |
Обработка содержимого ячеек - отчистка от мусора | Bromista | Microsoft Office Excel | 10 | 17.04.2009 11:39 |
Программа по удалению мусора | KORN | Софт | 12 | 31.10.2007 08:58 |