我认为这在技术上应该是可行的,但我不知道在现有软件中如何做到这一点。
我的意思是 — VM 中的“硬件”时钟应该能够以不同的速度运行,例如,比正常速度慢几倍,或比正常速度快 100 倍。因此,例如,一个Thread.sleep(1000);
调用不一定会花费 1 秒,而是可以是任何时间,具体取决于“硬件”时钟的速度。再举一个例子,如果某个游戏使用计时器来控制物体移动的速度,那么它的速度也会随着计时器速度而变化。
另外,了解实际硬件时钟的速度是否可以调整以及在哪种硬件上调整也很有趣。
更新
有两个看似相似的问题,但它们是关于 CPU 速度,而不是计时器速度(这是完全不同的事情)。所以我认为这个问题不是重复的。
答案1
Virtual-box 支持存在于配置级别正如这张官方票上所解释的那样:
顺便说一句,这是
VBoxManage setextradata VM_NAME "VBoxInternal/TM/WarpDrivePercentage" 200
使客人时钟速度加倍。
目前没有计划支持 GUI。
它不会让时间装置走得更快。
经过测试并且只对每个程序的某些方面有效,“也许”是因为它不会使时间设备运行得更快,并且程序使用它来进行部分时间同步。
在其他 VM 实用程序中:
另外,上述票的开票人提到:
bochs 和 DOSbox 可以通过模拟比正常情况更慢或更快的 CPU 和/或计时器来加速或减慢 VM 的速度。
答案2
Qemu 可能也为您提供了解决方案,请参阅:https://stackoverflow.com/questions/24936920/increasing-the-speed-of-qemu-clock
片段:
qemu-system-x86_64 -rtc base=localtime,clock=vm -icount shift=7,align=off,sleep=off ...