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.
time
date
clock
simulation
Tom Robinson
źródło
źródło
Odpowiedzi:
To niekoniecznie przyspieszy czas, ale może być przydatne do debugowania.
Nirsoft's RunAsDate
Ze strony:
źródło
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.
źródło
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ć.
źródło
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):
źródło