|
"C with Classes"
|
|
Сборщик мусора01.12.2019, 19:38. Показов 10336. Ответов 54
Метки нет (Все метки)
Наткнулся на такие строки и прошу пояснить, что значит.
Во многих языках управление ресурсами в основном делегируется сбор щику мусора. С++ также предлагает интерфейс сборки мусора, так что вы можете подключить сборщик мусора. In many languages, resource management is primarily delegated to a garbage collector. C++ also offers a garbage collection interface so that you can plug in a garbage collector На чем основывается этот интерфейс? И как его подключить. (это про сторонние библиотеки что ли?)
0
|
|
| 01.12.2019, 19:38 | |
|
Ответы с готовыми решениями:
54
Сборщик мусора задача не для новичков- сборщик мусора
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 01.12.2019, 23:32 | ||
|
Я вообще говоря ожидал что вместо этого полиморфный объект будет хранить виртуальный метод getMyAddress, через который и будет вытягиваться нужный аллокатору адрес Child*. А сам аллокатор будет не привязан к конкретному типу, а работать как обертка над malloc. Ну, второй пункт в polymorphic_allocator и правда сделали. А вот с первым затык.
0
|
||
|
Комп_Оратор)
|
|
| 01.12.2019, 23:46 | |
|
_stanislav, GC -шные библиотеки "одевают" всё. Начинается от new и заканчивается одетыми указателями. Это аналоги смартпойнтеров. Напиши свою реализацию упрощённо и поймёшь. Вот ссыль (я смотрел по диагонали - вроде похоже на правду).
https://www.codeproject.com/Ar... on-library Самый главный в С++ вопрос о GC звучит так: - А зачем (зачем - мягко сказано) тогда С++? (имхо). Когда ты напишешь систему поиска нужного объекта для удаления при выходе из области, - одну, вторую, третью, - поймёшь, - лучше на Жаве писать и не мучать ЖоЦэ.
1
|
|
|
"C with Classes"
|
|||
| 02.12.2019, 05:06 [ТС] | |||
|
0
|
|||
|
Комп_Оратор)
|
||||
| 02.12.2019, 10:59 | ||||
|
Добавлено через 12 минут Не по теме: зы это у всех такие тормоза с форумом или у меня только?
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 11:25 | |
|
IGPIGP,
Так все дело в том что программист в случае стандартного gc "не одевает" указатель. Нет никаких обёрток. http://www.stroustrup.com/C++11FAQ.html#gc-abi По этой ссылке ничего подобного нет. Работа идёт по прежнему, только не думаем о delete (за то начинаем держать в голове правила работы с gc). Поэтому мне не понятно почему уже вторую страницу речь идёт про обёртки, в то время как тема о стандартном gc. Понимаю, сейчас зима, хочется одеться самому и одеть указатели, но указатели не мерзнут, можете не переживать
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.12.2019, 11:55 | ||
|
А, стоп, вот же ответ - "There is no standard way of saying which alternative you prefer. Considered that a "quality of implementation" and a "programming environment" issue. ". То ли цитату первого апреля писали, то ли снизу постучали.
1
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 12:50 | |
|
Renji,
Нормальному gc ничего сообщать обычно не нужно. На то он и gc, что бы отслеживать ресурсы без вмешательства программиста иначе от него скорее будет больше проблем чем пользы
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.12.2019, 13:04 | ||
|
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 13:11 | |
|
Renji,
Согласен, это должно быть без принуждений. Чтоб был вкл/выкл... А когда он вкл, что бы сам следил за ресурсами. Но думаю что все таки эта фича не для с++, даже с возможностью вкл/выкл
0
|
|
|
Комп_Оратор)
|
||
| 02.12.2019, 13:24 | ||
|
Добавлено через 12 минут Undisputed, вы читали текст по предложенной вами ссылке? Тогда обратите внимание на предложенную там БС ссылку на реализацию: https://dl.acm.org/citation.cf... 31.1542437
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 14:28 | |
|
IGPIGP,
В С++ я gc не пользовался. Но это никак не меняет сути gc. Не вижу кода по вашей ссылке. А на ФАГе Страуструпа код есть и указатели в нем не одетые.
0
|
|
|
Комп_Оратор)
|
||||||
| 02.12.2019, 14:44 | ||||||
|
Undisputed, ваш ответ содержит две несовместимые части. И не только в последнем посту. Но давайте с последнего начнём:
0
|
||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 15:32 | |
|
IGPIGP,
Я читал текст по той ссылке. И по контексту я понял что сборщик должен уметь работать с указателем, полученным через new, то есть не одетым указателем. Если вы считаете что я где-то ошибся, то прошу укажите конкретно на ошибку. А то шума много, но ничего конкретного нет
0
|
|
|
Комп_Оратор)
|
|||
| 02.12.2019, 15:45 | |||
0
|
|||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 15:55 | |
|
IGPIGP,
1) Где вы там увидели про базовый класс? 2) Указатель это не классовый тип и унаследовать функционал класса он не может
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 02.12.2019, 16:01 | ||
|
И не заведется оно на классах. Делаем сборщик мусора на основе подсчета ссылок, прям как в shared_ptr. Объект A ссылается на объект B, а объект B ссылается обратно на A. Где эти A и B лежат никто уже и не знает, но счетчик ссылок то не нулевой! Утечка памяти. Делаем сборщик мусора считающий достижимость объекта из указателя в локальных и глобальных переменных. А откуда умному указателю знать локальный он или в динамической памяти лежит? Особенно, если он в другой объект вложен. В рамках C++ затея получается еще более сомнительной.
1
|
||
|
Комп_Оратор)
|
||||
| 02.12.2019, 16:15 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 02.12.2019, 16:16 | |
|
IGPIGP,
Отличаю. Так где там про базовый класс то написано?
0
|
|
|
"C with Classes"
|
|
| 02.12.2019, 17:01 [ТС] | |
|
Undisputed, я думаю ты правильно понял работу стандартного GC.
Добавлено через 13 секунд солидарен.
0
|
|
|
Комп_Оратор)
|
|
| 02.12.2019, 18:51 | |
|
0
|
|
| 02.12.2019, 18:51 | |
|
Очистка мусора Сборка мусора
Уборка мусора из double Как избавиться от записи мусора? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|