Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012) — различия между версиями

Материал из 0x1.tv

()
(Batch edit: replace PCRE (\n\n)+(\n) with \2)
 
(не показано 36 промежуточных версий этого же участника)
== Видео ==

{{vimeoembed|53134637|800|450}}


<!-- pollholder --> 










== Слайды ==
[[File:Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf|left|page=-|256px]]

{{----}}
== Примечания и отзывы ==
<!-- <blockquote>[©]</blockquote> -->

* [http://2012.secrus.ruorg/talks/dynamic-data-race-detection-in-concurrent-java-programs Страница доклада на сайте конференции]

<references/>

[[Category:SECR-2012]]
[[Category:ToPublish]]
[[Category
<!-- topub -->

[[Категория:SECR-2012]]
[[Категория[[Category:Параллельное программирование]]
[[Category:Java]]Категория:Java]]
[[Категория:Автоматическзированное тестирование]]
{{stats|disqus_comments=0|refresh_time=2021-08-31T16:59:22.753370|vimeo_comments=0|vimeo_plays=88|youtube_plays=0}}

Текущая версия на 12:20, 4 сентября 2021

Аннотация

Докладчики

Состояния гонки (data races) – одни из самых частых ошибок многопоточного программирования. Они возникают, когда несколько потоков обращаются к одному и тому же разделяемому участку памяти, причем одно из этих обращений – запись. Как правило, гонки опасны, поскольку они приводят к ошибкам в работе программы и повреждениям глобальных структур данных. Гонки очень сложно обнаружить вручную: их проявления не видны немедленно (в отличие, например, от взаимных блокировок – deadlocks) и они возникают только при специфическом чередовании операций в потоках.

В этом докладе мы расскажем о разработанном нами динамическом детекторе гонок, который во время работы программы собирает и анализирует информацию о ходе ее выполнения, обнаруживая гонки “на лету”. Попытки разработки подобных утилит уже неоднократно предпринимались в прошлом, однако до общедоступного, стабильного инструмента, который можно было бы использовать хотя бы на этапе промышленного тестирования (а в идеале – на нагруженных production-системах), дело не дошло. Основные причины этого заключаются в технической сложности задачи и необходимости обрабатывать большие объемы данных – грубо говоря, все обращения к разделяемым переменным/объектам и все синхронизационные операции.

Нам удалось решить или обойти эти и некоторые другие проблемы и разработать утилиту, которая активно используется для улучшения качества наших приложений. В докладе мы расскажем о нашем опыте разработки детектора гонок:

  • Как искать гонки в программах
  • Как эффективно внедриться в ход работы Java-программы
  • С какими принципиальными техническими трудностями мы столкнулись
  • Как справиться с большим объемом данных.

Видео

Слайды

Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf Динамическое обнаружение гонок в многопоточных Java-программах (SECR-2012).pdf

Примечания и отзывы


Plays:88   Comments:0