Детерминированное выполнение потоков Java, поддержка инструментов - PullRequest
2 голосов
/ 16 марта 2011

Я ищу инструмент или API, который позволяет детерминированное выполнение потоков Java для целей тестирования.Таким образом, разрешение переключения контекста в коде Java в определенных местах в байтовом коде.Например, я хочу, чтобы поток t1 выгружался для другого потока t2, скажем, в строке N в байт-коде / исходном коде и так далее.Чтобы упростить задачу, давайте проигнорируем синхронизацию или блокировки.Есть ли какой-нибудь инструмент, если возможно, с открытым исходным кодом, настроенным JVM.Мне известны некоторые инструменты, такие как dejavu, LEAP, но я хотел бы узнать о рекомендуемых инструментах с открытым исходным кодом от кого-то, кто имеет опыт работы с такими инструментами.

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Мне не известны какие-либо инструменты, которые делают именно то, что вы хотите, и в целом это будет сложно, просто потому, что JIT и т. Д. Будут размыты, что означает "линия". Таким образом, вы либо получите паршивый код, который соответствует вашим целям, либо реальный код, который не будет. В любом случае ошибки могут ускользнуть. Я бы посоветовал вам взглянуть на ConTest , чтобы понять, как можно провести тестирование в этой общей области.

0 голосов
/ 08 февраля 2015

Вот сравнение различных решений: http://sites.fct.unl.pt/sites/default/files/synergy-vm/files/2013-middleware-silva.pdf

...