The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

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

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

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

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

  1. Главная ссылка к новости (https://code.facebook.com/post...)
  2. OpenNews: Facebook открыл код статического анализатора Infer
  3. OpenNews: Средства трассировки в ядре Linux достигли уровня DTrace
  4. OpenNews: Yandex опубликовал статический анализатор файлов конфигурации nginx
  5. OpenNews: Агентство национальной безопасности США опубликовало каталог своих открытых проектов
  6. OpenNews: Релиз набора компиляторов LLVM 5.0
Лицензия: CC-BY
Тип: Программы
Ключевые слова: facebook, infer, thread
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.4, Crazy Alex (ok), 13:04, 21/10/2017 [ответить] [показать ветку] [···]    [к модератору]
  • –1 +/
    Эх, вот где-то здесь и жалеешь, что для плюсов такое сделать проблематично
     
     
  • 2.15, . (?), 19:41, 21/10/2017 [^] [ответить]     [к модератору]
  • –1 +/
    Один из симптомов шубообразной охватывающей шизофрении - страхи, и сильные сожал... весь текст скрыт [показать]
     
  • 2.22, nobody (??), 22:18, 21/10/2017 [^] [ответить]    [к модератору]  
  • +2 +/
    Погугли "sanitizer" и больше не пиши тут чушь
     
     
  • 3.25, pavlinux (ok), 03:03, 22/10/2017 [^] [ответить]    [к модератору]  
  • +3 +/
    нагугли мозг (ну или хотя бы чем отличаются sanitizer от static analize), и больше вообще не пиши.  
     
     
  • 4.26, Crazy Alex (ok), 03:12, 22/10/2017 [^] [ответить]     [к модератору]  
  • +1 +/
    В данном случае дело даже не в том - в джаве есть каноничный способ описать шаре... весь текст скрыт [показать]
     
     
  • 5.38, Аноним (-), 13:38, 23/10/2017 [^] [ответить]    [к модератору]  
  • +/
    >В плюсах этого нет, поэтому анализ становится многократно сложнее.

    На самом деле нет. Разбор исходного кода настолько незначительная сторона статического анализа, что на ней можно не зацикливаться

     
     
  • 6.42, Crazy Alex (ok), 15:51, 23/10/2017 [^] [ответить]     [к модератору]  
  • +/
    речь не о самом разборе В джаве syncronized полностью описывает всё поведение... весь текст скрыт [показать]
     
  • 4.37, Аноним (-), 10:49, 23/10/2017 [^] [ответить]     [к модератору]  
  • –1 +/
    Какая доброта И что же, интересно, не так У вас какие-то проблемы Thread Sani... весь текст скрыт [показать]
     
     
  • 5.43, Crazy Alex (ok), 15:51, 23/10/2017 [^] [ответить]    [к модератору]  
  • +/
    Только здесь речь вообще не о том.
     
  • 2.29, Ivan (??), 13:38, 22/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Статик анализатор на это есть в clang с 2011 года https clang llvm org docs T... весь текст скрыт [показать]
     
     
  • 3.36, Crazy Alex (ok), 03:58, 23/10/2017 [^] [ответить]    [к модератору]  
  • +/
    Какие-то местечковые аннотации на макросах? Действительно, и почему их никто не использует...
     
     
  • 4.46, Ivan (??), 16:45, 23/10/2017 [^] [ответить]     [к модератору]  
  • +/
    В C 03 макросы нужны, чтобы код компилировался на тех компиляторах, которые не ... весь текст скрыт [показать]
     
     
  • 5.54, Crazy Alex (ok), 01:34, 24/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Насчёт макросов понял хотя им с этого начинать надо бы - что вот так пишется на... весь текст скрыт [показать]
     
     
  • 6.58, Ivan (??), 15:08, 24/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Я согласен Я думаю это связано с тем, что документация писалась в 2011 году, ко... весь текст скрыт [показать]
     
  • 1.5, YetAnotherOnanym (ok), 13:52, 21/10/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • –3 +/
    > выявить более тысячи проблем

    Это всё, что вам надо знать о проектах для платформы Android.

     
     
  • 2.6, Аноним (-), 15:18, 21/10/2017 [^] [ответить]    [к модератору]  
  • +4 +/
    > Это всё, что вам надо знать о проектах

    от Facebook

     
  • 2.7, Ordu (ok), 16:14, 21/10/2017 [^] [ответить]     [к модератору]  
  • +2 +/
    Не надо такое знать Не надо читать анонимов опеннета, которые целенаправленно в... весь текст скрыт [показать]
     
     
  • 3.31, Kodir (ok), 17:46, 22/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Думаю, тут смысл несколько другой На стадии разработки - это дилетанское отра... весь текст скрыт [показать]
     
     
  • 4.32, Ordu (ok), 20:16, 22/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Почему ты выбираешь именно тот смысл фразы на стадии разработки , который припи... весь текст скрыт [показать]
     
     
  • 5.41, Кузнец (?), 15:34, 23/10/2017 [^] [ответить]     [к модератору]  
  • +/
    В ваших рассуждениях есть одна типичная ошибка вы предполагаете, что если в Яве... весь текст скрыт [показать]
     
     
  • 6.55, Ordu (ok), 04:47, 24/10/2017 [^] [ответить]     [к модератору]  
  • –1 +/
    Может быть, я с джавой знакомился лет пятнадцать назад, через полгода потерял к ... весь текст скрыт [показать]
     
     
  • 7.59, Кузнец (?), 21:26, 24/10/2017 [^] [ответить]     [к модератору]  
  • +/
    О каком коде вы говорите Caps же -- это для тех, кто может только знакомится с ... весь текст скрыт [показать]
     
  • 2.9, Аноним (-), 16:51, 21/10/2017 [^] [ответить]    [к модератору]  
  • +/
    И что же нам нужно знать?
     
  • 1.17, Аноним (-), 20:16, 21/10/2017 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    В модели памяти это называется Data Race И необязательно необходим мьютекс Так... весь текст скрыт [показать]
     
     
  • 2.27, pavlinux (ok), 03:21, 22/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Хвать гнать, Race Condition - это общее описание всех багов возникающих при дост... весь текст скрыт [показать]
     
     
  • 3.28, Аноним (-), 13:01, 22/10/2017 [^] [ответить]    [к модератору]  
  • –2 +/
    не гуглятся примеры dr vs rc? я помогу https://blog.regehr.org/archives/490
     
     
  • 4.33, pavlinux (ok), 20:41, 22/10/2017 [^] [ответить]     [к модератору]  
  • +1 +/
    Еще раз Race Condition - это общее описание всех багов возникающих при доступ... весь текст скрыт [показать]
     
     
  • 5.45, Кузнец (?), 15:53, 23/10/2017 [^] [ответить]     [к модератору]  
  • +1 +/
    По-моему, вы немного не о том Гонка возникает, когда есть гонка Т е непред... весь текст скрыт [показать]
     
  • 5.50, Аноним (-), 20:48, 23/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Во-первых, в статье нет решений, есть только примеры, показывающие разницу между... весь текст скрыт [показать]
     
  • 4.35, pavlinux (ok), 20:53, 22/10/2017 [^] [ответить]    [к модератору]  
  • +/
    ......Пля, модыр, трахни в моск свой кревой парсер
     
  • 2.40, Кузнец (?), 15:29, 23/10/2017 [^] [ответить]    [к модератору]  
  • +/
    Это всё гонка. Т.е. когда состояние обобществлённого ресурса зависит от (псевдо)случайных факторов, а не прописано логикой алгоритма.
     
     
  • 3.48, Аноним (-), 20:22, 23/10/2017 [^] [ответить]    [к модератору]  
  • +/
    Race condition обязательно нарушает логику алгоритма (семантику, инварианты, или как хотите) при неблагопрятном стечении обстоятельств. Data race - совсем не обязательно.
     
     
  • 4.51, Кузнец (?), 01:19, 24/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Агх Не уверен Гонка возникает, чаще всего, из-за неверного суждения разраба о ... весь текст скрыт [показать]
     
  • 4.52, Кузнец (?), 01:24, 24/10/2017 [^] [ответить]     [к модератору]  
  • +/
    RC как раз ничего не нарушает -- нельзя нарушить то, что не предписано Просто н... весь текст скрыт [показать]
     
  • 3.60, Кузнец (?), 21:27, 24/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Итак, резюмирую Гонка всегда результат неверного суждения об исполнительной... весь текст скрыт [показать]
     
  • 1.23, Аноним (-), 00:10, 22/10/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Никаких связей с растовым racer, ага.
     
     
  • 2.44, Crazy Alex (ok), 15:52, 23/10/2017 [^] [ответить]    [к модератору]  
  • +/
    Растоманам везде раст мерещится
     
  • 1.30, теперь по Борщеву (?), 16:52, 22/10/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    есть ли неигровое приложение под андроид, более нагружающее мобилку, чем фейсбук? Я серьёзно. Сбербанк-онлайн не предлагать.
     
  • 1.39, Кузнец (?), 15:24, 23/10/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    На мой не слишком проницательный взгляд история многопоточности в Яве это история про то, как сначала усиленно и целенаправленно делать дуршлаг, потому что дуршлаг все хотят, а потом сделав -- делать затычки для дырочек в этом друшлаге. Многопоточность в Яве "слишком гибкая", т.е. слишком много зависит от степени трезвости разработчика.
     
     
  • 2.49, Аноним (-), 20:34, 23/10/2017 [^] [ответить]    [к модератору]  
  • +/
    как раз по части модели памяти джава всегда была очень продвинутой. актуальную модель памяти плюсов делали в том числе опираясь на джавовую, но вот, к примеру, с OoTA-значениями так и не разобрались.
     
     
  • 3.53, Кузнец (?), 01:27, 24/10/2017 [^] [ответить]     [к модератору]  
  • +/
    Местами даже через чур Особенно в отсутствии внятной документации ... весь текст скрыт [показать]
     
     
  • 4.56, Ordu (ok), 09:01, 24/10/2017 [^] [ответить]    [к модератору]  
  • +/
    чересчур
     
     
  • 5.57, Кузнец (?), 13:06, 24/10/2017 [^] [ответить]    [к модератору]  
  • +/
    Да
     
  • 5.61, Кузнец (?), 22:53, 24/10/2017 [^] [ответить]    [к модератору]  
  • +/
    P.S: Хотя, не совсем. "Через чур" тоже можно употреблять -- это, как раз, исконное выражение. Одно из значений "Чур" -- граница. Т.е. "через чур" это через границу. Или сверх меры. Так что, всё Ок.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor