Cho đồng hồ của một ứng dụng chạy nhanh hơn
Một bản dùng thử 30 ngày cần 30 ngày để hết hạn, trừ khi bạn dịch chuyển được thời gian. Lời khuyên thông thường là đẩy đồng hồ hệ thống tiến lên, việc này cần quyền quản trị viên và kéo theo mọi chương trình khác trên máy. Công cụ này dịch chuyển một tiến trình duy nhất.
Nhanh đến mức nào
Chọn một hệ số nhân là số nguyên. Đồng hồ của ứng dụng tiến nhanh gấp chừng ấy lần đồng hồ thật, từ bất cứ thời điểm nào mà phiên bắt đầu.
| Hệ số nhân | Một phút thật trở thành | Hữu ích cho |
|---|---|---|
x60 | một giờ | tác vụ theo giờ, hết thời gian chờ phiên, tuổi thọ token |
x1440 | một ngày | chuyển ngày, bản dùng thử 30 ngày trong nửa giờ |
x43200 | một bản dùng thử 30 ngày | xem cả bản dùng thử kết thúc trong lúc bạn đọc dòng này |
x525600 | một năm | gia hạn hằng năm, hết hạn chứng chỉ |
x1000000 | khoảng 1,9 năm | mức trần |
# Bắt đầu từ giờ thật bây giờ, và chạy một ngày mỗi phút chrono run "C:\apps\test.exe" --mode x1440 # Bắt đầu ở một ngày đã chọn và tăng tốc từ đó chrono run "C:\apps\test.exe" --at 2027-12-01T09:00:00 --mode x1440 # Hoặc giữ đồng hồ đứng yên hoàn toàn chrono run "C:\apps\test.exe" --mode frozen
Phần khiến người ta vấp: có hai đồng hồ
Tăng tốc đồng hồ treo tường - thứ mà DateTime.Now và các hàm tương
đương trả về - tự nó không làm bộ đếm ngược nhanh lên. Đó là hai câu hỏi khác nhau
mà một ứng dụng có thể hỏi hệ điều hành, và rất nhiều phần mềm đo “ba mươi ngày” bằng câu thứ hai
chứ không phải câu thứ nhất.
Vì vậy trục khoảng thời gian - số tick, sleep, chờ và bộ hẹn giờ - là một công tắc riêng:
--scale-durationcũng đưa bộ đếm tick, các lệnh ngủ và bộ hẹn giờ lên đồng hồ phiên, còn các lệnh chờ đối tượng được đếm và giữ nguyên độ dài thật. Không có nó,x1440đẩy lịch chạy tới trong khi một bộ hẹn giờ năm giây vẫn mất năm giây thật - chỉ bộ hẹn giờ đặt vào một ngày giờ cụ thể mới theo đồng hồ phiên trong mọi phiên.--scale-qpccòn nhân tỷ lệ cả bộ đếm độ phân giải cao. Đó là nơimonotoniccủa Python 3.13+,Stopwatchcủa .NET vànanoTimecủa Java đọc thời gian đã trôi, và nó tắt theo mặc định vì nhân tỷ lệ nó làm mất ổn định việc kết xuất khi kiểm thử.
Nếu hệ số nhân dường như chẳng làm gì với một bộ đếm ngược, gần như luôn là vì lý do này.
# Một ứng dụng hẹn giờ: tăng tốc lịch VÀ các bộ đếm ngược chrono run "C:\apps\Timer.exe" --mode x60 --scale-duration # Một ứng dụng Python hoặc .NET đo thời gian đã trôi trên bộ đếm độ phân giải cao chrono run "C:\apps\Job.exe" --mode x60 --scale-duration --scale-qpc
Đổi tốc độ mà không khởi động lại
Hệ số nhân có thể đổi giữa phiên, và đồng hồ được neo lại chứ không bị nhảy, nên nó không bao giờ chạy lùi khi tốc độ giảm. Bạn cũng có thể nhảy thẳng đồng hồ - tiến, hoặc lùi như cách một laptop làm sau khi đồng bộ lại với máy chủ thời gian, trường hợp làm hỏng mọi thứ đo thời gian đã trôi mà không có biện pháp bảo vệ.
# Chạy ở x60, rồi chuyển sang x1440 sau hai giây chrono run "C:\apps\test.exe" --mode x60 --set-after 2:1440 # Chạy, rồi nhảy đồng hồ đến một thời điểm đã chọn sau năm giây chrono run "C:\apps\test.exe" --jump-after 5:2028-01-01T00:00:00
Những gì nó sẽ không làm
- Nó không đụng đến đồng hồ hệ thống. Đó là mục đích, không phải hạn chế - nhưng nó có nghĩa là bất cứ thứ gì đọc giờ từ máy chủ, cơ sở dữ liệu hay máy khác đều không bị ảnh hưởng, và kiểm toán sẽ cho bạn biết khi điều đó xảy ra.
- Một cú nhảy thay đổi những gì ứng dụng thấy, không phải lúc nó thức dậy. Các lệnh ngủ và bộ hẹn giờ đã giao cho nhân giữ nguyên độ dài nhận được khi được đặt. Hầu hết ứng dụng hỏi đồng hồ liên tục, nên các cú nhảy hoạt động trong thực tế - nhưng không phải với tất cả.
- Nó không làm chậm thời gian. Các hệ số nhân là số nguyên từ một trở lên, cộng thêm đồng hồ đóng băng ở không.
Việc có thứ nào trong số đó đến được ứng dụng của bạn hay không không phải điều để giả định. Phiên sẽ nói cho bạn →