powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / сборщик мусора и языки
25 сообщений из 32, страница 1 из 2
сборщик мусора и языки
    #39456646
qq2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во многих языках со встроеным сборщиком мусора(c#,java,python) есть проблемы производительности,
вызваные работой этого сборщика мусора. В c++ backend используются простейшие по устройству SmartPointer'ы
- и всё ок. Почему подобный подход не используется или не применим к языкам, упомянутым в начале?
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456649
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное со SmartPoint-ерами не все ОК.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456657
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не все ОК, есть проблема с циклическими ссылками.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456662
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SmartPointer - это же reference counting? В Питоне он вроде до сих пор используется. В джаве, вроде, решили, что дешевле прибивать поколения, чем у каждого ссылки считать.
И обычно проблемы не в сборщике мусора, а в алгоритмах.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456670
YesSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TНе все ОК, есть проблема с циклическими ссылками.
Это сильно надуманная проблема новичков. Для этого в паре со shared_ptr идет weak_ptr
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456684
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YesSqlDima TНе все ОК, есть проблема с циклическими ссылками.
Это сильно надуманная проблема новичков. Для этого в паре со shared_ptr идет weak_ptr
Hello, World!
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456692
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно начать с того, что не у всех есть стековая память.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456716
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglМожно начать с того, что не у всех есть стековая память.
У кого нет? )
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456746
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YesSqlDima TНе все ОК, есть проблема с циклическими ссылками.
Это сильно надуманная проблема новичков. Для этого в паре со shared_ptr идет weak_ptr
Вот уже начинаются проблемы -- различные типы поинтеров. Добавь к этому ещё кастомные делитеры и проблемы, решаемые через secret ctor . Подгнило что-то в Датском королевстве, поэтому эти ваши сисярпы/явы и не запариваются по этому поводу.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456748
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySiemarglМожно начать с того, что не у всех есть стековая память.
У кого нет? )AFAIK классы c#, явы и питона хранятся исключительно в хипе.

структуры c#, временные ссылки (т.е. указатели) - на стеке. но это явно меньшее количество данных
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456764
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qq2017,

достаточно заглянуть в Википедию: Подсчёт ссылок . Подсчёт ссылок может ухудшать производительность, по сравнению со сборкой мусора. И могут быть проблемы с циклическими ссылками.

В английской Вики расписано намного подробнее: Reference counting . Например, интересен взвешенный подсчёт ссылок.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456772
Alexander A. SakSmartPointer - это же reference counting? В Питоне он вроде до сих пор используется. В джаве, вроде, решили, что дешевле прибивать поколения, чем у каждого ссылки считать.
И обычно проблемы не в сборщике мусора, а в алгоритмах.
В Питоне сразу два способа очищения памяти: старый - ref-counting, и новый - garbage collector чтобы подчищать за циклическими ссылками.
Для веб часто третий способ используют - периодически грохать процессы.
О том, как в Instagram отключили сборщик мусора Python и начали жить
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456784
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikqq2017,

достаточно заглянуть в Википедию: Подсчёт ссылок . Подсчёт ссылок может ухудшать производительность, по сравнению со сборкой мусора. И могут быть проблемы с циклическими ссылками.

В английской Вики расписано намного подробнее: Reference counting . Например, интересен взвешенный подсчёт ссылок.

Может ухудшить. Тут нужна аккуратность, как и вообще с С++.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456786
YesSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NekZYesSqlпропущено...

Это сильно надуманная проблема новичков. Для этого в паре со shared_ptr идет weak_ptr
Вот уже начинаются проблемы -- различные типы поинтеров. Добавь к этому ещё кастомные делитеры и проблемы, решаемые через secret ctor . Подгнило что-то в Датском королевстве, поэтому эти ваши сисярпы/явы и не запариваются по этому поводу.
Это не подгнило. Это говорит о возможностях кастомизации и контроля над поведением приложения.
Кому-то нужен cisco router а кому-то и asus за глаза.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456822
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCcМожет ухудшить. Тут нужна аккуратность, как и вообще с С++.

AFAIK Java и C#
ОЧЕНЬ быстро выделяют память, new работает почти мгновенно, но соответственно могут очень долго ее чистить (gc)

C, C++
Не очень быстро ))) выделяют (new) и не очень быстро освобождают (delete)

И у того и у другого есть свои плюсы и минусы )))
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456842
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevOoCcМожет ухудшить. Тут нужна аккуратность, как и вообще с С++.

AFAIK Java и C#
ОЧЕНЬ быстро выделяют память, new работает почти мгновенно, но соответственно могут очень долго ее чистить (gc)

C, C++
Не очень быстро ))) выделяют (new) и не очень быстро освобождают (delete)

И у того и у другого есть свои плюсы и минусы )))
Я имел ввиду смарт указатели. Что касается аллокатора то говорить о том что он медленный нет никакого смысла. В языках С и С++ его нет вообще.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456844
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglAFAIK классы c#, явы и питона хранятся исключительно в хипе.

структуры c#, временные ссылки (т.е. указатели) - на стеке. но это явно меньшее количество данных
Но стековая память-то есть ))
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456886
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevOoCcМожет ухудшить. Тут нужна аккуратность, как и вообще с С++.

AFAIK Java и C#
ОЧЕНЬ быстро выделяют память, new работает почти мгновенно, но соответственно могут очень долго ее чистить (gc)

C, C++
Не очень быстро ))) выделяют (new) и не очень быстро освобождают (delete)

И у того и у другого есть свои плюсы и минусы )))
Проблема в другом - там где можно обойтись стековым размещением, тебя принуждают к хипу.

А локальных одноразовых переменных на порядок больше, чем долговременных.

В итоге, виноват GC, что ему насовали столько, что не обработать.... А не криволапная концепция языка, которая все сует в Хип

Anatoly MoskovskySiemarglAFAIK классы c#, явы и питона хранятся исключительно в хипе.

структуры c#, временные ссылки (т.е. указатели) - на стеке. но это явно меньшее количество данных
Но стековая память-то есть ))
Стековая память есть везде, где процессор это позволяет. Вроде бы все современные +-10лет к этому пришли.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456892
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglСтековая память есть везде, где процессор это позволяет
там где не позволяет - тож есть - IBM/360+ например
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456897
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSiemarglСтековая память есть везде, где процессор это позволяет
там где не позволяет - тож есть - IBM/360+ напримерИзвините, не некромант. Живых не видел тоже
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456992
qq2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю за ответы!
Всё оказалось не так просто. Хочется уточнить более интересный с практической точки зрения момент:

Допустим есть приложение(например бэкэнд), написаный:
1) На С++ без явного управления памятью - только стэковая память и объекты со счётчиком ссылок(shared_ptrы и т.п)
2) То же самое на обычном языке со сборщиком мусора(C#/java/python)

Будет ли первый вариант лучше/не хуже в большинстве случаев?
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456994
qq2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SiemarglВ итоге, виноват GC, что ему насовали столько, что не обработать.... А не криволапная концепция языка, которая все сует в Хип

Кстати, D в этом вопросе отличается от других?
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39456995
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qq2017SiemarglВ итоге, виноват GC, что ему насовали столько, что не обработать.... А не криволапная концепция языка, которая все сует в Хип

Кстати, D в этом вопросе отличается от других?Поменяли к худшему - как в шарпе - структуры на стеке, классы в хипе (
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39457018
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qq2017Почему подобный подход не используется или не применим к языкам, упомянутым в начале?Потому что парадигма. Когда язык разрабатывался, решили, что у нас в основе будет это, это и это. Безопасной работы с памятью в сях не было, разработчики языка решили сделать всем хорошо и сразу. В общем, явщики упирают в скрытие деталей и быструю разработку и сожрать всю память на сервере, плюсовики - в оптимизацию и гибкость. На плюсах можно быстро сделать яву, а вот на яве плюсы - неее
В плюсах, кстати, уже есть библиотеки сборщиков мусора. Тут где-то 2-3 в пример приводили.
...
Рейтинг: 0 / 0
сборщик мусора и языки
    #39457050
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevC, C++
Не очень быстро ))) выделяют (new) и не очень быстро освобождают (delete)
с чего вдруг такое?
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / сборщик мусора и языки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]