Nechte hodiny jedné aplikace běžet rychleji
Třicetidenní zkušební doba vyprší za 30 dní, pokud neumíte posunout čas. Obvyklá rada je posunout systémové hodiny dopředu, což vyžaduje práva správce a táhne to s sebou všechny ostatní programy na počítači. Tohle místo toho posouvá jeden proces.
Jak rychle
Zvolte celočíselný násobitel. Hodiny aplikace postupují tolikrát rychleji než skutečné, od okamžiku, ve kterém sezení začíná.
| Násobitel | Jedna skutečná minuta se stává | K čemu je to dobré |
|---|---|---|
x60 | hodinou | hodinové úlohy, vypršení sezení, životnost tokenů |
x1440 | dnem | denní přechody, 30denní zkušební doba za půl hodiny |
x43200 | 30denní zkušební dobou | sledování konce celé zkušební doby, zatímco tohle čtete |
x525600 | rokem | roční obnovení, vypršení certifikátů |
x1000000 | asi 1,9 roku | strop |
# Začít na skutečném čase teď a běžet den za minutu chrono run "C:\apps\test.exe" --mode x1440 # Začít ve zvoleném datu a zrychlovat od něj chrono run "C:\apps\test.exe" --at 2027-12-01T09:00:00 --mode x1440 # Naopak úplně zastavit hodiny chrono run "C:\apps\test.exe" --mode frozen
Část, na které se lidé nachytají: hodiny jsou dvoje
Zrychlení kalendářních hodin - toho, co vrací DateTime.Now a jeho
ekvivalenty - samo o sobě nezrychlí odpočet. To jsou dvě různé otázky, které
může aplikace operačnímu systému položit, a spousta softwaru měří „třicet dní“ tou druhou, ne
první.
Osa trvání - počty ticků, uspání, čekání a časovače - je proto samostatný přepínač:
--scale-durationpřevádí na hodiny sezení i čítače tiků, uspání a časovače, zatímco čekání na objekty se počítají a zachovávají svou skutečnou délku. Bez nějx1440žene kalendář dopředu, zatímco pětisekundový časovač pořád trvá pět skutečných sekund - jen časovač nastavený na konkrétní datum a čas sleduje hodiny sezení v každém sezení.--scale-qpcnavíc škáluje čítač s vysokým rozlišením. Tam čtou uplynulý časmonotonicz Pythonu 3.13+,Stopwatchz .NET ananoTimez Javy, a je ve výchozím stavu vypnutý, protože jeho škálování při testování destabilizovalo vykreslování.
Pokud se zdá, že násobitel odpočtu nic nedělá, je to téměř vždy kvůli tomuto.
# Aplikace s časovačem: zrychlit kalendář I odpočty chrono run "C:\apps\Timer.exe" --mode x60 --scale-duration # Aplikace v Pythonu nebo .NET měřící uplynulý čas na čítači s vysokým rozlišením chrono run "C:\apps\Job.exe" --mode x60 --scale-duration --scale-qpc
Změna rychlosti bez restartu
Násobitel lze uprostřed sezení změnit a hodiny se znovu ukotví, ne skočí, takže nikdy nejdou zpět, když rychlost klesne. Hodinami můžete také rovnou skočit - dopředu, nebo zpět tak, jak to dělá notebook po opětovné synchronizaci s časovým serverem, což je případ, který rozbije cokoli, co měří uplynulý čas bez pojistky.
# Běžet na x60, pak po dvou vteřinách přepnout na x1440 chrono run "C:\apps\test.exe" --mode x60 --set-after 2:1440 # Spustit a po pěti vteřinách skočit hodinami na zvolený okamžik chrono run "C:\apps\test.exe" --jump-after 5:2028-01-01T00:00:00
Co neumí
- Nesahá na systémové hodiny. To je smysl, ne omezení - ale znamená to, že cokoli, co čte čas ze serveru, z databáze nebo z jiného počítače, zůstává nedotčeno, a audit vám řekne, když se to stane.
- Skok mění to, co aplikace vidí, ne kdy se probudí. Uspání a časovače už předané jádru si ponechávají délku, kterou dostaly při nastavení. Většina aplikací se hodin dotazuje, takže skoky v praxi fungují - ale ne u všech.
- Nezpomaluje čas. Násobitele jsou celá čísla od jedné výše plus zastavené hodiny na nule.
Zda se něco z toho dostalo k vaší aplikaci, není věc k předpokládání. Sezení to řekne →