Facebook открыл RacerD, статический анализатор для многопоточного кода на Java

21 октября 2017 года

Facebook представил проект RacerD (Архивная копия от 7 декабря 2019 на Wayback Machine), в рамках которого открыты наработки по выявлению проблем, возникающих из-за одновременного выполнения кода в многопоточных программах на языке Java. RacerD интегрирован в систему статического анализа Infer и обеспечивает определение потенциальных ошибок в коде, использующем классы/методы, заявленные как @ThreadSafe, или осуществляющем блокировки при помощи ключевого слова "synchronized".

RacerD сконцентирован на выявлении состояний гонки, возникающих между вызовом методов класса в разных потоках. Например, определяются ситуации, когда выполняется два одновременных обращения к переменной члена класса, не отделённой при помощи мьютекса, если в одном из обращений выполняется операция записи.

RacerD уже около 10 месяцев используется в Facebook и за это время помог выявить более тысячи проблем в многопоточном коде проектов для платформы Android, на стадии их разработки. Большая часть ошибок была выявлена в процессе перевода реализации ленты новостей в Android-приложении Facebook на многопоточную модель работы.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Facebook открыл RacerD, статический анализатор для многопоточного кода на Java», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.