Czy jest jakieś oprogramowanie lub sprzęt, który pozwala zatrzymać, zwolnić, przyspieszyć lub nawet cofnąć czas?

11

Oczywiście mówię o czasie w kategoriach zegara komputera, a nie o czasie rzeczywistym .

Testowaliśmy aplikację, którą opracowaliśmy w pracy, przesuwając zegar do przodu i do tyłu, aby symulować różne scenariusze, i zacząłem myśleć, jak przydatne byłoby dostosowanie częstotliwości (?) Zegara systemowego z lepszą kontrolą. Możesz więc minąć minutę w ciągu sekundy lub dzień w 30 sekund i obserwować, jak program, który tworzysz, radzi sobie ze zmianami daty i godziny.

Czy jest dostępne takie oprogramowanie?

Chciałbym usłyszeć, czy ktoś wie o jakimkolwiek oprogramowaniu lub sprzęcie, które mogą pozwolić Ci wykonać niektóre lub wszystkie z powyższych.

Tom Robinson
źródło
5
Zapytaj Doktora, kogo on prowadzi w TARDIS.
Rob
3
Tylko uwaga - jeśli ten komputer jest w domenie, spodziewaj się kłopotliwych transakcji z udziałami sieciowymi i wszystkim innym związanym z Kerberos. Zmiana czasu tak, aby nie odpowiadał emulatorowi PDC, może siać spustoszenie na biletach Kerberos.
MDMarra,
@ Rob, założę się, że to gentoo.
Phoshi,

Odpowiedzi:

6

To niekoniecznie przyspieszy czas, ale może być przydatne do debugowania.

Nirsoft's RunAsDate

Ze strony:

RunAsDate to małe narzędzie, które pozwala uruchomić program w podanej dacie i godzinie. To narzędzie nie zmienia bieżącej daty i godziny systemowej komputera, ale wstrzykuje tylko określoną datę / godzinę do żądanej aplikacji. Możesz uruchamiać wiele aplikacji jednocześnie, każda aplikacja działa z inną datą i godziną, podczas gdy rzeczywista data / godzina systemu nadal działa normalnie.

Keck
źródło
3

W systemach uniksowych libfaketime jest de facto standardowym rozwiązaniem tego problemu w oprogramowaniu. Wykonuje rodzaj pośredniej operacji między aplikacją a biblioteką czasową systemu. Żądania są przekazywane do systemu, ale odpowiedzi są modyfikowane w razie potrzeby. Zmienia również wyniki stat()wywołań, więc czasy modyfikacji plików i c. są również modyfikowane.

Ustawienia są dokonywane za pomocą zmiennych środowiskowych, więc być może będziesz musiał się o nich dowiedzieć, jeśli nie znasz ich działania.

libfaketime obsługuje przesunięcia względne i bezwzględne, czas zatrzymania i działania oraz przyspieszenie lub zwolnienie. Jednak nie wiem, jak biegać wstecz.

Zauważ, że obecna wersja udaje, że sekundy są najwyższą dostępną rozdzielczością czasu, i przekazuje częściowe sekundy odpowiedzi do aplikacji bez zmian. Tak więc, jeśli zwolnisz zegar do połowy prędkości, program świadomy na sekundę, wykonujący bardzo szybkie połączenia czasowe, doświadczy całej sekundy dwa razy po sobie, a nie tylko dwa razy dłużej. Jeśli zegar zostanie zatrzymany, oznacza to, że aplikacja widzi losowy czas w wybranej sekundzie.

Niestety Github jest dziś niedostępny, więc dokumenty nie są teraz dostępne, ale prawdopodobnie zostanie to wkrótce naprawione.

Edytować:

Z Githubem wykonałem kopię zapasową i wypróbowałem go, i stwierdziłem, że kod zmiany prędkości jest na tyle ogólny, że działa dobrze z wartościami ujemnymi lub czymkolwiek innym akceptowanym przez atof().

Jednak pojawił się inny problem: w celu zmiany prędkości konieczne jest podanie czasu początkowego oprócz rzeczywistego czasu bieżącego i pożądanego przesunięcia czasowego. To źródło jest ustawiane niezależnie dla podprocesów, tak więc (gdy biegnie wstecz z nominalną prędkością), gdy proces macierzysty cofnie się o jedną minutę, nowo odrodzony podproces zobaczy aktualny czas dwie minuty później niż proces macierzysty.

Eroen
źródło
1

Zawsze możesz to napisać. (Czy CMD nadal obsługuje polecenia DATA / CZAS?)

Każdy program, którego byś użył, prawdopodobnie działałby i tak, resetując czas w małych krokach. Jeśli nie potrzebujesz bardzo drobnoziarnistej kontroli, skrypt wsadowy (lub perl :) mógłby dość łatwo kontrolować te zmiany.

Gotchas: Aby skorzystać z tego rozwiązania, usługi aktualizacji NTP musiałyby zostać wyłączone, aby system operacyjny nie przestawiał zegara z powrotem na to, co powinno być.

quack quixote
źródło
W WinXP CMD nadal obsługuje oba polecenia.
Isxek,
Dzięki, uruchomiłem Ubuntu w dającej się przewidzieć przyszłości i nie mogłem sprawdzić.
quack quixote
1
Szukałem czegoś bardziej analogowego niż to. Prawie jak koło z przodu komputera, które można obrócić, aby zwolnić i przyspieszyć zegar.
Tom Robinson
1
@tjrobinson: w tym celu musisz również wykonać hakowanie sprzętowe. brzmi jak fajny projekt. :)
quack quixote
1

Zauważyłem odniesienie do starego programu o nazwie ASpeeder . Nie mam pojęcia, jak to działa, czy to działa, czy jest to starożytna witryna z oszustwami. Spróbuj na własne ryzyko. Witaj Eris.

Jest to oprogramowanie płatne (20 USD). Spójrz i upewnij się, że sprawdziłeś pobieranie przed instalacją.

Funkcje Speedera 2008.4 (ze strony internetowej):

  • Zmień prędkość gier komputerowych lub gier online
  • Kontroluj prędkość aplikacji i szybkość systemu Windows
  • Łatwy w użyciu, wystarczy przeciągnąć pasek ścieżki lub nacisnąć klawisz skrótu
  • Od prędkości 1/32 razy do prędkości systemowej 32 razy
  • Od 1/256 razy większej prędkości do 256 razy większej prędkości systemu Windows
  • Ustawienie prędkości jest automatycznie blokowane
  • Oferuj trzy rodzaje metod zmiany prędkości

wprowadź opis zdjęcia tutaj

quack quixote
źródło
Zwykle mam program podobny do tego. Wierzę, że został zaprojektowany do symulacji wolniejszej częstotliwości taktowania procesora do uruchamiania starszych programów (głównie gier), które oparły swój czas reakcji na zegarze procesora. Program, którego nie zepsułem z datą / godziną systemową.
Kenneth Cochran
brzmi dokładnie tak, jak to zostało zaprojektowane. ale kto wie, co znajduje się na karcie Opcje, może mieć wpływ na zegar systemowy.
quack quixote
Jeśli ktoś zna alternatywę, która działa na WinX, chciałbym o tym usłyszeć!
Dewi Morgan