Size: a a a

Compiler Development

2021 February 08

K

Kir in Compiler Development
Дмитрий К
Звучит как лютейший костыль.
Chicken scheme медленноват, но я бы сказал, что алгоритм довольно оригинальный
источник

VK

Vladimir Kazanov in Compiler Development
Дмитрий К
Звучит как лютейший костыль.
Почему?
источник

VK

Vladimir Kazanov in Compiler Development
Kir
Chicken scheme медленноват, но я бы сказал, что алгоритм довольно оригинальный
возможно. Есть известная страничка со сравнениями производительности Схем версии r7rs:

http://ecraven.github.io/r7rs-benchmarks/
источник

ДК

Дмитрий К in Compiler Development
Vladimir Kazanov
Почему?
Потому что куча лишней работы недетерминированного объёма.
источник

VK

Vladimir Kazanov in Compiler Development
Дмитрий К
Потому что куча лишней работы недетерминированного объёма.
вы про сдвиг указателя на вершину стека? Вроде бы это не очень тяжелая операция 😊
источник

ДК

Дмитрий К in Compiler Development
Vladimir Kazanov
вы про сдвиг указателя на вершину стека? Вроде бы это не очень тяжелая операция 😊
Я про "Перед сбросом живые значения из стека перемещаются в кучу для зачистки алгоритмом Чейни".
источник

VK

Vladimir Kazanov in Compiler Development
Дмитрий К
Я про "Перед сбросом живые значения из стека перемещаются в кучу для зачистки алгоритмом Чейни".
Это делается редко. Да и разве не должен сборщик мусора в любом случае должен такие вещи делать?
источник

ДК

Дмитрий К in Compiler Development
Концепция сборки мусора сама по себе порочна. Чисто там, где не сорят.
источник

DP

Dmitry Ponyatov in Compiler Development
Дмитрий К
Концепция сборки мусора сама по себе порочна. Чисто там, где не сорят.
источник

DP

Dmitry Ponyatov in Compiler Development
Дмитрий К
Концепция сборки мусора сама по себе порочна. Чисто там, где не сорят.
в эрланге красиво — принял запрос в сообщении, поработал, грохнул процесс вместе со всей памятью
источник

IP

Iaroslav Postovalov in Compiler Development
Dmitry Ponyatov
в эрланге красиво — принял запрос в сообщении, поработал, грохнул процесс вместе со всей памятью
Так еще в пыхе делали
источник

МБ

Михаил Бахтерев... in Compiler Development
Дмитрий К
Концепция сборки мусора сама по себе порочна. Чисто там, где не сорят.
Несколько замечаний для объективности картины мира.

1. Сейчас даже в файловых системах есть сборка мусора. Потому что так эффективнее. Амортизация, все дела.

2. Ядро ОС собирает мусор за процессами. Без этого можно было бы очень легко устраивать DoS-атаки. Ну, и так просто безопаснее, чем верить в чистоту пользовательского приложения. Даже ATS не даёт 100% гарантий.

3. Сборка мусора позволяет работать с более сложными структурами данных и алгоритмами, что полезно.
источник

AK

Andrei Kurosh in Compiler Development
Дмитрий К
Концепция сборки мусора сама по себе порочна. Чисто там, где не сорят.
Это было бы правдой в мире, где программисты никогда не устают и не ошибаются
источник

МБ

Михаил Бахтерев... in Compiler Development
Andrei Kurosh
Это было бы правдой в мире, где программисты никогда не устают и не ошибаются
Дело не в программистах. В большинстве случаев приходится писать самопальные сборщики мусора, потому что только в runtime известно, когда данные больше не понадобятся. Не всегда самопальное надёжнее и эффективнее сборщика языка. Стандартно делают арены, но арены - такое себе по экономичности и эффективности решение.
источник

VK

Vladimir Kazanov in Compiler Development
Михаил Бахтерев
Дело не в программистах. В большинстве случаев приходится писать самопальные сборщики мусора, потому что только в runtime известно, когда данные больше не понадобятся. Не всегда самопальное надёжнее и эффективнее сборщика языка. Стандартно делают арены, но арены - такое себе по экономичности и эффективности решение.
Можно сказать, кстати, что и изложенный алгоритм просто совмещает арену для первого поколения мусора со стеком уровня C 😊
источник

EP

Egor Pugin in Compiler Development
Михаил Бахтерев
Несколько замечаний для объективности картины мира.

1. Сейчас даже в файловых системах есть сборка мусора. Потому что так эффективнее. Амортизация, все дела.

2. Ядро ОС собирает мусор за процессами. Без этого можно было бы очень легко устраивать DoS-атаки. Ну, и так просто безопаснее, чем верить в чистоту пользовательского приложения. Даже ATS не даёт 100% гарантий.

3. Сборка мусора позволяет работать с более сложными структурами данных и алгоритмами, что полезно.
а ос каким образом собирает мусор за процессами?
источник

ДК

Дмитрий К in Compiler Development
Dmitry Ponyatov
в эрланге красиво — принял запрос в сообщении, поработал, грохнул процесс вместе со всей памятью
Это файберы, а не процессы я так понимаю.
источник

RA

R A in Compiler Development
Iaroslav Postovalov
Так еще в пыхе делали
Пхп появился на ~10 лет позже.
источник

AK

Andrei Kurosh in Compiler Development
Михаил Бахтерев
Дело не в программистах. В большинстве случаев приходится писать самопальные сборщики мусора, потому что только в runtime известно, когда данные больше не понадобятся. Не всегда самопальное надёжнее и эффективнее сборщика языка. Стандартно делают арены, но арены - такое себе по экономичности и эффективности решение.
Так мы друг другу не противоречим. Любую логику, определяющую в рантайме, когда данные больше не понадобятся, можно теоретически выразить кучей условий вида if(...) delete x - но это сложно, бажно и дорого в поддержке, поэтому народ и изобретает автоматизированные способы типа арен, умных указателей и т.д.
источник

МБ

Михаил Бахтерев... in Compiler Development
Egor Pugin
а ос каким образом собирает мусор за процессами?
Ссылки считает. На основе этого подсчёта закрывает файлы, сокеты всякое такое, освобождает страницы в памяти, делает reparenting дочерних процессов, разблокирует мьютексы. И т.д. и т.п.
источник