Решения Java для записи / воспроизведения исполняемого кода в JVM - PullRequest
6 голосов
/ 14 июля 2011

У нас есть ошибка, которую мы пытаемся обнаружить, которая происходит недетерминированно (ну, это детерминистично, но мы просто не знаем, что на самом деле ее вызывает), и это происходит только раз в пару часов.

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

Мне интересно, есть ли какие-либо устройства записи / воспроизведения JVM, которые могут хранить все, что происходило в JVM, чтобы мы могли затем пройти через это шаг за шагом и воссоздать шаги для исключения.

Я нашел один. (Я не собираюсь публиковать его, чтобы люди не думали, что я пытаюсь рекламировать продукт.), Но мне интересно, есть ли другие, и что более важно, другие, которые люди использовали, и могу сообщить, что хорошо работать.

Изменить, чтобы добавить:

Я нашел Решения воспроизведения . Я никогда не использовал это, и я никогда не слышал об этом, поэтому я не знаю, насколько он хорош на самом деле.

Мы используем JProfiler, но я не думаю, что на самом деле есть поддержка для записи / воспроизведения всего.

Ответы [ 2 ]

8 голосов
/ 14 июля 2011

Я бы посоветовал использовать Хронон , он хорошо работал для меня, но я еще широко не использовал его.

0 голосов
/ 14 июня 2015

Невозможно (кроме, может быть, микропроцессоров) записывать все, особенно из-за чередования потоков: снижение / замедление производительности будет слишком серьезным. Если проблема, которую вы пытаетесь воспроизвести, является ошибкой параллелизма, вы можете попробовать системы, которые выполняют частичную регистрацию и завершают чередование, используя SMT-решение:

http://www.gsd.inesc -id.pt / ~ nmachado / Программное обеспечение / Symbiosis_Tutorial.html

Насколько мне известно, это самая последняя система, доступная с открытым исходным кодом (на java, c и c ++).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...