Как сделать виртуальную машину с нестандартной скоростью времени (timescale)?
Я думаю, что это должно быть технически возможно, но я не знаю ни одного способа сделать это в уже существующем программном обеспечении.
Что я имею в виду - "аппаратные" часы в ВМ должны работать на разных скоростях, например, в несколько раз медленнее, чем обычно, или в 100 раз быстрее, чем обычно. Так, например, Thread.sleep(1000);
Звонок не обязательно будет тратить 1 секунду, но вместо этого это может быть любое время, в зависимости от скорости "аппаратных" часов. И как другой пример, если какая-то игра использует таймер для управления скоростью движения вещей, то ее скорость также будет изменяться вместе со скоростью таймера.
Также было бы интересно узнать, можно ли настроить частоту реальных аппаратных часов и на каком оборудовании.
Обновить
Есть два, казалось бы, похожих вопроса, но они касаются скорости процессора, а не скорости таймера (это совершенно другое). Поэтому я думаю, что этот вопрос не является дубликатом.
2 ответа
Поддержка виртуальных ящиков существует на уровне конфигурации, как описано в этом официальном билете:
Кстати, это
VBoxManage setextradata VM_NAME "VBoxInternal/TM/WarpDrivePercentage" 200
для удвоения скорости гостевых часов.
Поддержка графического интерфейса в настоящее время не планируется.
Это не заставляет устройство работать быстрее.
Протестировано и работает только для некоторых аспектов каждой программы, "возможно", поскольку оно не заставляет устройство времени работать быстрее, и программы используют его для части своих временных синхронизаций.
В других утилитах VM:
Также, открыватель вышеуказанного билета упоминается:
bochs и DOSbox могут ускорять или замедлять виртуальную машину, эмулируя процессор и / или таймер медленнее или быстрее, чем обычно.
У Qemu также может быть решение для вас, см. https://stackoverflow.com/questions/24936920/increasing-the-speed-of-qemu-lock .
Фрагмент:
qemu-system-x86_64 -rtc base=localtime,clock=vm -icount shift=7,align=off,sleep=off ...