Chrono Mock
TaalNederlands

Laat de klok van één app sneller lopen

Een proefperiode van 30 dagen duurt 30 dagen om te verlopen, tenzij je de tijd kunt verplaatsen. Het gebruikelijke advies is de systeemklok vooruit te zetten, wat beheerdersrechten vraagt en elk ander programma op de machine meesleept. Dit verplaatst één proces.

Hoe snel

Kies een geheel getal als vermenigvuldiger. De klok van de applicatie loopt zoveel keer sneller dan de echte, vanaf het moment waarop de sessie begint.

VermenigvuldigerEén echte minuut wordtHandig voor
x60een uuruurlijkse taken, sessietime-outs, levensduur van tokens
x1440een dagdagelijkse overgangen, een proefperiode van 30 dagen in een half uur
x43200een proefperiode van 30 dagende hele proefperiode zien eindigen terwijl je dit leest
x525600een jaarjaarlijkse verlengingen, verlopen certificaten
x1000000ongeveer 1,9 jaarhet plafond
# Beginnen op de echte tijd van nu en een dag per minuut lopen
chrono run "C:\apps\test.exe" --mode x1440

# Beginnen op een gekozen datum en vanaf daar versnellen
chrono run "C:\apps\test.exe" --at 2027-12-01T09:00:00 --mode x1440

# De klok in plaats daarvan helemaal stil houden
chrono run "C:\apps\test.exe" --mode frozen
Een opname van een sessie die een andere Windows-applicatie aanstuurt. Het linkervenster is Chrono Mock, met de klok van de applicatie op 2038-01-19 die oploopt met zestig keer de echte snelheid terwijl de echte klok ernaast maar een paar seconden verder gaat. Het rechtervenster is de geteste applicatie, wiens eigen sessielogboek laat zien dat ze op 2038-01-19 startte en al minuten draait tegen nauwelijks een halve minuut in de kamer.
Een echte sessie, die een echte applicatie aanstuurt. Let op het rechtervenster: het geteste programma registreerde zijn eigen start op 19 januari 2038, en zijn sessie duurde minuten terwijl de klok in de kamer seconden verder ging. De snelheid wordt gewijzigd terwijl het draait, zonder iets opnieuw te starten.

Waar mensen over struikelen: er zijn twee klokken

De wandklok versnellen - wat DateTime.Now en zijn equivalenten teruggeven - versnelt op zichzelf geen aftelling. Dat zijn twee verschillende vragen die een applicatie aan het besturingssysteem kan stellen, en veel software meet “dertig dagen” met de tweede in plaats van de eerste.

Dus de duuras - tickteller, sleeps, wachten en timers - is een aparte schakelaar:

  • --scale-duration zet ook tickcounters, pauzes en timers op de sessieklok, terwijl wachten op objecten wordt geteld en zijn echte lengte houdt. Zonder deze optie jaagt x1440 de kalender vooruit terwijl een timer van vijf seconden nog steeds vijf echte seconden duurt - alleen een timer die op een datum en tijd is gezet volgt in elke sessie de sessieklok.
  • --scale-qpc schaalt bovendien de high-resolution teller. Daar lezen Python 3.13+ monotonic, .NET Stopwatch en Java nanoTime de verstreken tijd, en hij staat standaard uit omdat schalen de rendering in tests destabiliseerde.

Als de vermenigvuldiger niets lijkt te doen met een aftelling, is dit bijna altijd de reden.

# Een timer-app: de kalender EN de aftellingen versnellen
chrono run "C:\apps\Timer.exe" --mode x60 --scale-duration

# Een Python- of .NET-app die verstreken tijd meet op de high-resolution teller
chrono run "C:\apps\Job.exe" --mode x60 --scale-duration --scale-qpc

De snelheid wijzigen zonder opnieuw te starten

De vermenigvuldiger kan midden in de sessie veranderen, en de klok wordt opnieuw verankerd in plaats van gesprongen, zodat hij nooit achteruit gaat als de snelheid daalt. Je kunt de klok ook rechtstreeks laten springen - vooruit, of achteruit zoals een laptop doet na synchronisatie met een tijdserver, het geval dat alles breekt wat verstreken tijd zonder beveiliging meet.

# Draaien op x60 en na twee seconden overschakelen naar x1440
chrono run "C:\apps\test.exe" --mode x60 --set-after 2:1440

# Draaien en na vijf seconden de klok naar een gekozen moment laten springen
chrono run "C:\apps\test.exe" --jump-after 5:2028-01-01T00:00:00

Wat het niet doet

  • Het raakt de systeemklok niet aan. Dat is het punt, geen beperking - maar het betekent dat alles wat de tijd van een server, een database of een andere machine leest onaangetast blijft, en de audit zegt het als dat gebeurt.
  • Een sprong verandert wat de toepassing ziet, niet wanneer ze wakker wordt. Pauzes en timers die al aan de kernel zijn overgedragen houden de lengte die ze kregen toen ze werden gezet. De meeste toepassingen vragen de klok op, dus sprongen werken in de praktijk - maar niet bij allemaal.
  • Het vertraagt de tijd niet. Vermenigvuldigers zijn gehele getallen van één en hoger, plus een bevroren klok op nul.

Of iets hiervan je applicatie bereikte, is niet iets om aan te nemen. De sessie zegt het →

Probeer het