Spraw, żeby zegar jednej aplikacji szedł szybciej
30-dniowa wersja próbna wygasa po 30 dniach, chyba że umiesz przesunąć czas. Typowa rada to popchnąć zegar systemowy do przodu, co wymaga uprawnień administratora i pociąga za sobą wszystkie inne programy na komputerze. To przesuwa jeden proces.
Jak szybko
Wybierasz całkowity mnożnik. Zegar aplikacji idzie tyle razy szybciej niż prawdziwy, licząc od momentu, w którym zaczyna się sesja.
| Mnożnik | Jedna realna minuta to | Do czego |
|---|---|---|
x60 | godzina | zadania godzinowe, wygasanie sesji, czas życia tokenów |
x1440 | doba | przejścia dobowe, 30-dniowa wersja próbna w pół godziny |
x43200 | 30-dniowa wersja próbna | obejrzenie jej całej w czasie czytania tej strony |
x525600 | rok | odnowienia roczne, wygasanie certyfikatów |
x1000000 | około 1,9 roku | sufit |
# Zacznij od prawdziwego teraz i leć w tempie doby na minutę chrono run "C:\apps\test.exe" --mode x1440 # Zacznij od wybranej daty i przyspieszaj od niej chrono run "C:\apps\test.exe" --at 2027-12-01T09:00:00 --mode x1440 # Albo zatrzymaj zegar zupełnie chrono run "C:\apps\test.exe" --mode frozen
Rzecz, która zaskakuje: zegary są dwa
Przyspieszenie zegara ściennego - tego, co zwraca
DateTime.Now i jego odpowiedniki - samo w sobie nie przyspiesza
odliczania. To dwa różne pytania, które aplikacja może zadać
systemowi, a mnóstwo oprogramowania mierzy „trzydzieści dni" tym drugim, nie
pierwszym.
Dlatego oś czasu trwania - liczniki taktów, uśpienia, czekania i timery - jest osobnym przełącznikiem:
--scale-durationprzestawia uśpienia, czekania i timery również na zegar sesji. Bez tegox1440pędzi kalendarzem naprzód, a pięciosekundowy timer nadal trwa pięć prawdziwych sekund.--scale-qpcdokłada skalowanie licznika wysokiej rozdzielczości. To tammonotonicw Pythonie 3.13+,Stopwatchw .NET inanoTimew Javie czytają czas trwania. Domyślnie wyłączone, bo skalowanie go destabilizowało renderowanie w testach.
Jeśli mnożnik zdaje się nie robić nic z odliczaniem, to prawie zawsze jest to ten powód.
# Aplikacja z timerem: przyspiesz kalendarz I odliczania chrono run "C:\apps\Timer.exe" --mode x60 --scale-duration # Aplikacja Pythona albo .NET mierząca czas licznikiem wysokiej rozdzielczości chrono run "C:\apps\Job.exe" --mode x60 --scale-duration --scale-qpc
Zmiana prędkości bez restartu
Mnożnik można zmienić w trakcie sesji, a zegar jest wtedy przekotwiczany, nie przeskakiwany, więc nigdy nie cofa się przy spadku prędkości. Zegarem można też skoczyć wprost - do przodu albo do tyłu, tak jak robi to laptop po synchronizacji z serwerem czasu, co jest przypadkiem psującym wszystko, co mierzy czas trwania bez zabezpieczenia.
# Leć x60, po dwóch sekundach przełącz na x1440 chrono run "C:\apps\test.exe" --mode x60 --set-after 2:1440 # Po pięciu sekundach skocz zegarem na wybrany moment chrono run "C:\apps\test.exe" --jump-after 5:2028-01-01T00:00:00
Czego nie zrobi
- Nie rusza zegara systemowego. To jest sens, a nie ograniczenie - ale oznacza, że cokolwiek czyta czas z serwera, z bazy danych albo z innej maszyny, pozostaje nietknięte, a audyt powie ci, kiedy tak się dzieje.
- Skok zmienia to, co aplikacja widzi, a nie to, kiedy się budzi. Timery już oddane jądru chodzą na prawdziwym czasie. Większość aplikacji odpytuje zegar, więc skoki w praktyce działają - ale nie u wszystkich.
- Nie spowalnia czasu. Mnożniki to liczby całkowite od jedynki w górę plus zamrożony zegar w zerze.
Tego, czy cokolwiek z tego dotarło do twojej aplikacji, nie warto zakładać. Sesja to mówi →