Есть ли какое-либо программное или аппаратное обеспечение, которое позволяет вам останавливать, замедлять, ускорять или даже изменять время?

4353
tjrobinson

Очевидно, я говорю о времени с точки зрения часов ПК, а не реального времени.

Мы тестировали приложение, которое мы разработали на работе, устанавливая часы вперед и назад для имитации различных сценариев, и я начал думать, насколько полезно было бы, если бы вы могли регулировать частоту (?) Системных часов с более точным управлением. Таким образом, вы можете сделать минутный проход за секунду или дневной за 30 секунд и посмотреть, как разрабатываемая вами программа справляется с изменениями даты и времени.

Доступно ли такое программное обеспечение?

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

11
Спросите Доктора Кто, что он бежит в ТАРДИС. Rob 14 лет назад 5
Просто примечание - если этот компьютер находится в домене, ожидайте, что он будет иметь дело с общими сетевыми ресурсами и всем остальным, связанным с Kerberos. Изменение времени так, чтобы оно не совпадало с эмулятором PDC, может нанести ущерб билетам Kerberos. MDMarra 14 лет назад 3
@Rob, держу пари, это Gentoo. Phoshi 14 лет назад 0

4 ответа на вопрос

6
Keck

Это не обязательно ускорит время, но может быть полезно для отладки.

RunAsDate от Nirsoft

С сайта:

RunAsDate - это небольшая утилита, которая позволяет запускать программу в указанные вами дату и время. Эта утилита не изменяет текущую системную дату и время вашего компьютера, а только внедряет указанную вами дату / время в желаемое приложение. Вы можете запускать несколько приложений одновременно, каждое приложение работает с разными датами и временем, в то время как реальная дата / время вашей системы продолжает работать нормально.

1
quack quixote

Вы всегда можете написать это. (CMD все еще поддерживает команды DATE / TIME?)

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

Gotchas: Службы обновления NTP должны быть отключены, чтобы использовать это решение, чтобы ОС не продолжала сбрасывать часы назад, какими бы они ни были.

На WinXP CMD по-прежнему поддерживает обе команды. Isxek 14 лет назад 0
спасибо, я загружен в Ubuntu для обозримого будущего и не могу проверить. quack quixote 14 лет назад 0
Я искал нечто более похожее на аналог. Почти как колесо на передней панели компьютера, которое вы можете повернуть, чтобы замедлить и ускорить часы. tjrobinson 14 лет назад 1
@tjrobinson: для этого вам также понадобится взломать оборудование. звучит как крутой проект, хотя. :) quack quixote 14 лет назад 1
1
quack quixote

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

Это платное ПО (20 долларов). Посмотрите и убедитесь, что вирус проверяет загрузку перед установкой.

Особенности Speeder 2008.4 (с сайта):

  • Изменить скорость настольных игр или онлайн-игр
  • Управление скоростью приложения и скоростью Windows
  • Простота в использовании, просто перетащите трек-бар или нажмите горячую клавишу
  • От скорости в 1/32 раза до скорости системы в 32 раза
  • От скорости 1/256 раз до скорости Windows 256 раз
  • Настройка скорости блокируется автоматически
  • Предложите три вида методов для изменения скорости

Я использую, чтобы иметь программу, подобную этой. Я считаю, что он был разработан для имитации более низкой тактовой частоты процессора для запуска старых программ (в основном игр), которые основывали свое время реакции на тактовой частоте процессора. Программа, которую я не связывал с системной датой / временем. Kenneth Cochran 14 лет назад 0
звучит как то, для чего это было разработано. но кто знает, что находится на вкладке «Параметры», возможно, влияет на системные часы. quack quixote 14 лет назад 0
Если кто-нибудь знает альтернативу, которая работает на WinX, я хотел бы услышать об этом! Dewi Morgan 6 лет назад 0
1
Eroen

On unix systems, libfaketime is the de facto standard solution for this problem in software. It performs a sort of man-in-the-middle operation between your application and the system's time library. The requests are passed through to the system, but the replies are modified as needed. It also modifies the results of stat() calls, so file modification times & c. are also modified.

The settings are made with environment variables, so you might have to learn about those if you're not already familiar with their workings.

libfaketime supports relative and absolute offsets, stopped and running time and speeding up or slowing down. I don't know about running backwards, though.

Note that the current version pretends seconds are the highest resolution of time there is, and passes sub-second parts of responses through to the application unmodified. Thus, if you slow down the clock to half speed, a sub-seconds aware program making very rapid time calls will experience the whole second twice after each other rather than once just taking twice as long. If the clock is stopped, this means the application sees a random time within the selected second.

Unfortunately, Github is down today, so the docs are unavailable right now, but that will probably be fixed soon.

Edit:

With Github back up I tried it, and found the code for speed change to be general enough that it works well with negative values or anything else accepted by atof().

However, a different issue became apparent: For speed change, a time origin is necessary in addition to the real current time and the desired time offset. This origin is set independently for subprocesses, so that (when running backwards at nominal speed) when the parent process has retracted one minute, a newly spawned subprocess will see the current time as two minutes later than the parent process does.