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

11

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

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

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

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

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

Ответы:

6

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

RunAsDate от Nirsoft

С сайта:

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

рыгать
источник
3

В системах Unix libfaketime является де-факто стандартным решением этой проблемы в программном обеспечении. Он выполняет своего рода посредническую операцию между вашим приложением и системной временной библиотекой. Запросы передаются в систему, но ответы изменяются по мере необходимости. Он также изменяет результаты stat()вызовов, поэтому время изменения файла & c. также изменены.

Настройки выполняются с помощью переменных среды, поэтому вам, возможно, придется узнать о них, если вы еще не знакомы с их работой.

libfaketime поддерживает относительные и абсолютные смещения, время останова и работы, а также ускорение или замедление. Я не знаю, как бежать назад, хотя.

Обратите внимание, что текущая версия претендует на то, что секунды - это самое высокое разрешение времени, и передает доли секунды ответов в приложение без изменений. Таким образом, если вы замедляете время до половины скорости, программа с подсекундной скоростью, выполняющая очень быстрые вызовы времени, будет воспринимать целую секунду дважды, а не один раз, занимая в два раза больше времени. Если часы остановлены, это означает, что приложение видит случайное время в течение выбранной секунды.

К сожалению, Github сегодня не работает, поэтому документы сейчас недоступны, но это, вероятно, будет исправлено в ближайшее время.

Редактировать:

С резервным копированием Github я попробовал его и обнаружил, что код для изменения скорости достаточно общий, чтобы он работал с отрицательными значениями или чем-то еще, что принимается atof().

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

Eroen
источник
1

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

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

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

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

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

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

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

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

введите описание изображения здесь

шарлатан
источник
Я использую, чтобы иметь программу, подобную этой. Я считаю, что он был разработан для имитации более низкой тактовой частоты процессора для запуска старых программ (в основном игр), которые основывали свое время реакции на тактовой частоте процессора. Программа, которую я не связывал с системной датой / временем.
Кеннет Кокран
звучит как то, для чего это было разработано. но кто знает, что находится на вкладке «Параметры», может повлиять на системные часы.
Quackote Quixote
Если кто-нибудь знает альтернативу, которая работает на WinX, я хотел бы услышать об этом!
Деви Морган