извини, хочу задать глупый вопрос. Антон пишет gc, который собирает мусор в js-коде (код пользователей), или в с++ коде? Если в с++, то где этот gc применяется?
Спасибо, хороший вопрос. GC собирает мусор С++ объектов. В браузере есть два сборщика - один для JS, другой для C++ (DOM).
Что-то я как-то разволновался и немного отвлекался на кота, который хотел покинуть комнату, и на посторонние звуки. Получилось сумбурно рассказать про причины. Надеюсь, в следующий раз в оффлайне получится лучше
Что-то я как-то разволновался и немного отвлекался на кота, который хотел покинуть комнату, и на посторонние звуки. Получилось сумбурно рассказать про причины. Надеюсь, в следующий раз в оффлайне получится лучше
Что-то я как-то разволновался и немного отвлекался на кота, который хотел покинуть комнату, и на посторонние звуки. Получилось сумбурно рассказать про причины. Надеюсь, в следующий раз в оффлайне получится лучше
а чем ваш GC от стандартного Boehm GC отличается? Anton
Отличный вопрос. Насколько мне известно, Boehm GC достаточно простой stop-the-world сборщик. У нас же задача стоит в том, чтобы сборщик был высокопроизводительный (параллельный/конкурентный), т.е как можно меньше влиял на пользовательский код.
Например, мы сейчас полностью исполняем sweep-фазу конкурентно (параллельно с рабочим потоком). Marking-фаза частично конкурентная (некоторые типы все еще маркируются в рабочем потоке, но работа над этим ведется).
Кстати, Ханс Боэм сейчас тоже в Гугле (работает над Android вроде). Недавно был митап по виртуальным машинам, где мы вместе делились опытом и проблемами в реализации сборщиков.
Отличный вопрос. Насколько мне известно, Boehm GC достаточно простой stop-the-world сборщик. У нас же задача стоит в том, чтобы сборщик был высокопроизводительный (параллельный/конкурентный), т.е как можно меньше влиял на пользовательский код.
Boem же консервативный сборщик вроде. А у вас какой?
Boem же консервативный сборщик вроде. А у вас какой?
Почти precise, за исключением консервативного сканирования стэка. Год назад был интерн, который пытался поднять llvmные стэк-мапы для точного сканирования стэка, но оказалось ооочень сложной задачей с кучей подводных камней 🙂