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.
| Vermenigvuldiger | Eén echte minuut wordt | Handig voor |
|---|---|---|
x60 | een uur | uurlijkse taken, sessietime-outs, levensduur van tokens |
x1440 | een dag | dagelijkse overgangen, een proefperiode van 30 dagen in een half uur |
x43200 | een proefperiode van 30 dagen | de hele proefperiode zien eindigen terwijl je dit leest |
x525600 | een jaar | jaarlijkse verlengingen, verlopen certificaten |
x1000000 | ongeveer 1,9 jaar | het 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
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-durationzet ook tickcounters, pauzes en timers op de sessieklok, terwijl wachten op objecten wordt geteld en zijn echte lengte houdt. Zonder deze optie jaagtx1440de 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-qpcschaalt bovendien de high-resolution teller. Daar lezen Python 3.13+monotonic, .NETStopwatchen JavananoTimede 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 →