Анализатор одновременного кода
-
09-09-2020 - |
Вопрос
Мне было интересно, если есть какие-либо рамки или приложения (приложение) / программа, которые могут проанализировать параллелизм любого кода Java?
Если инструмент знает все реализации классов и методов и методов JRE, то она сводится к простому анализу синхронизированных блоков и метода и их иерархии вызова.Отсюда он может создать чистую петри и сказать вам наверняка, если бы вы могли испытать тупик.
Я пропускаю что-то или это действительно так легко?Тогда должен быть какой-то прохладный инструмент, делающий такие вещи?Или будет ли такой инструмент отчета слишком много возможных тупиков, которые полностью сохраняются из-за некоторой базовой программы / бизнес-логики?Петри сетки должны быть достаточно мощными, чтобы справиться с этими ситуациями?
Это сэкономит так много часов в поисках ошибок, которые могут или не могут быть связаны с мертвыми блокирующими проблемами.
Решение
Хотя (многие) связанные ошибки, связанные с параллелизмом, используя анализ статического кода, он не применяется к каждому типу ошибке.Некоторые ошибки появляются только во время выполнения при определенных условиях.
IBM имеет инструмент под названием Конкурс , которые ; расписание выполнения программных потоков, таких как сценарии программ, которые могут содержать условия гонок, тупики и другие прерывистые ошибки (коллективно называемые проблемы синхронизации), вынуждены появляться с высокой частотой «.
Это требует прогона (единицы) тестов против приборной версии вашего приложения.Больше фоновой информации в этой работе reveloperworks Статья .
Другие советы
Эта бумага описывает инструмент, который выполняет статический анализБиблиотека и определяет, возможна ли возможна тупика.
Некоторые еще: