Проект Oilpan бросает вызов утечкам памяти!

Разработчики из Chromium объявили о начале работы над проектом Oilpan, который в идеале должен помочь справиться с утечками памяти, поднять стабильность, повысить безопасность, улучшить модель программирования, спасти человечество от голода. А теперь подробнее...

Oilpan

На картинке сверху приводится область проекта Chromium, проблемы в которой и побудили к разработке Oilpan (вариант перевода: масляный поддон). Браузер в основе своей имеет свободный движок для рендеринга страниц Blink (который когда-то был WebKit, который когда-то был KHTML, который когда-то создали для браузера Konqueror). В движке этом аж 350 тыс. строк кода, написанного на C++. А очистку памяти от объектов в нем проводят методом подсчета ссылок (reference counting), который крайне плох. Чем плох:

  • Трудно программировать, нужно много учиться потому что трудно представить какие объекты с какими связаны и вообще все сложно.
  • Утекает память. И отследить дыру крайне сложно.
  • Потенциальные дыры в безопасности. Да, их тоже трудно найти.
  • Не понятно, как при этом вообще работает связь между V8 и Blink. Чистая магия. Работает - не трожь

Собственно, проект Oilpan и ставит своей задачей заменить reference counting на свой новый и модный сборщик мусора (garbage collector). Это поможет решить все вышеописанные проблемы и восстановить баланс Сил.

Идея эта пришла разработчикам во время приготовления печенек.

Если вы знаете такие сложные фразы, как garbage collector, то вот вам официальная презентация грядущих изменений и подробное описание.

Переходный период начнется в январе. Во время переходного периода разработчики обещают немного багов и проблем. Ждем.