Я ищу способ надежно установить контрольную точку JVM, чтобы можно было сохранить частичные результаты крупномасштабных вычислений программой Java и перезапустить вычисления с того места, где они остановились, при следующем запуске JVM. Я искал решения в Интернете, но результаты в основном получены из исследовательских работ, которые не являются зрелыми промышленными решениями. Есть ли способ, как в 2018 году, надежно проверить JVM, о котором я не знаю?
Если "да", не могли бы вы дать ссылку? Если ответ отрицательный, то я могу придумать другой подход - запустить программу Java внутри системной виртуальной машины и вместо этого использовать контрольную точку. Я не тестировал. Но мне интересно, почему такая контрольная точка невозможна на виртуальной машине процесса, такой как JVM.
Вам необходимо сериализовать состояние, которое необходимо восстановить. Многие классы не сериализуемы и не могут быть проверены, например. Потоки, сокеты, дескрипторы файлов, компоненты графического интерфейса,
JVM - это довольно сложно, так что это будет нетривиальная задача. Возможно, вам повезет сделать сериализуемые классы вычислений, если они сохранят ход и состояние вычислений в переменных экземпляра.