رزولوشن تایمر ویندوز (Timer Resolution) و کاهش تأخیر ورودی

آخرین به‌روزرسانی ۱۴۰۵/۷/۲۴ · حدود ۷ دقیقه مطالعه

ویندوز به‌صورت پیش‌فرض تایمر سیستم را روی ۱۵٫۶ میلی‌ثانیه نگه می‌دارد. این یعنی برنامه‌ها حداکثر هر ۱۵٫۶ میلی‌ثانیه یک «تیک» می‌گیرند و برای کارهای سبک و پرتکرار — مثل خواندن ورودی ماوس یا زمان‌بندی فریم — تا یک فریم کامل منتظر می‌مانند. رساندن تایمر به ۰٫۵ میلی‌ثانیه این انتظار را از بین می‌برد و در بسیاری از سیستم‌ها تأخیر ورودی را محسوس کم می‌کند. در این راهنما هم روش دستی و هم روش ساده‌تر را می‌بینید، با دستور بازگردانی هر تغییر.

تایمر سیستم دقیقاً چه چیزی را تعیین می‌کند؟

هر برنامه‌ای که از ویندوز زمان‌بندی می‌خواهد (Sleep، تایمر، انتظار روی یک رخداد) روی یک ضربان مرکزی می‌نشیند. ضربان پیش‌فرض ۱۵٫۶ میلی‌ثانیه است؛ یعنی حتی اگر موتور بازی هر ۲ میلی‌ثانیه بتواند ورودی را بخواند، گردش بعدی ممکن است تا ۱۵ میلی‌ثانیه بعد اتفاق بیفتد. تأخیر اضافه حاصل از این گردش، همان چیزی است که بازیکن به‌صورت «سنگین بودن ماوس» یا «دیر واکنش نشان دادن» تجربه می‌کند.

وقتی تایمر روی ۰٫۵ میلی‌ثانیه تنظیم می‌شود، این گردش ۳۱ برابر سریع‌تر انجام می‌شود. نتیجه‌اش کاهش تأخیر ورودی و توزیع یکنواخت‌تر فریم‌تایم است، نه افزایش FPS خالص. اگر مشکل اصلی کارت گرافیک باشد، این تنظیم FPS را بالا نمی‌برد.

روش دستی ۱: تنظیم در همان لحظه با یک ابزار کوچک

ابزارهای رایگان و متن‌باز زیادی برای تنظیم تایمر وجود دارند (مثلاً ابزارهای community که از NtSetTimerResolution استفاده می‌کنند). این تنظیم تا زمانی که آن ابزار باز است پایدار می‌ماند و با بستن ابزار به حالت قبل برمی‌گردد — یعنی بازگشت‌پذیری خودکار.

  1. ابزار را از یک منبع شناخته‌شده دانلود کنید و «Run as administrator» بزنید.
  2. رزولوشن را روی ۰٫۵ میلی‌ثانیه تنظیم کنید (بعضی ابزارها ۰٫۵۰۰۰ را نمایش می‌دهند).
  3. ابزار را باز نگه دارید و روی ‎System timer resolution‎ نظارت کنید؛ باید ۰٫۵ میلی‌ثانیه بماند.
  4. برای بازگردانی، فقط ابزار را ببندید (یا Reset بزنید). نیازی به ری‌استارت نیست.

روش دستی ۲: تنظیم دائمی با bcdedit (پیشرفته)

دو تنظیم بوت وجود دارد که رفتار تیک ویندوز را تغییر می‌دهد: useplatformtick (استفاده از تیک ثابت پلتفرم به‌جای تیک داینامیک) و disabledynamictick (خاموش کردن تیک داینامیک). این‌ها در بوت‌کانفیگ ذخیره می‌شوند و تا وقتی خودتان پاک نکنید باقی می‌مانند.

هشدار: روی لپ‌تاپ مصرف باتری و دمای سیستم بالا می‌رود، چون CPU کمتر به حالت کم‌مصرف می‌رود. اگر سیستم ناپایدار شد یا بوت مشکل پیدا کرد، از Recovery Command Prompt استفاده کنید و همان دستور را با /deletevalue اجرا کنید.

  1. Command Prompt را با دسترسی Administrator باز کنید.
  2. برای اطمینان، خروجی فعلی را ذخیره کنید: bcdedit /enum {current}
  3. اجرا کنید: bcdedit /set useplatformtick yes
  4. اجرا کنید: bcdedit /set disabledynamictick yes
  5. سیستم را ری‌استارت کنید و با یک ابزار سنجش، رزولوشن را ببینید.
  6. برای بازگردانی کامل: bcdedit /deletevalue useplatformtick و bcdedit /deletevalue disabledynamictick

روش ساده: با Frame Boost، بدون تغییر بوت‌کانفیگ

اگر نمی‌خواهید بوت‌کانفیگ ویندوز را دست بزنید، Frame Boost همین نتیجه را فقط تا زمانی که برنامه در حال اجراست اعمال می‌کند: تایمر روی ~۰٫۵ میلی‌ثانیه می‌رود و با بستن برنامه، همه‌چیز خودکار به حالت پیش‌فرض برمی‌گردد. رایگان است و به کلید لایسنس نیازی ندارد.

  1. نصب‌کننده را از صفحه دانلود بگیرید و نصب کنید (بدون تغییر بوت‌کانفیگ یا ری‌استارت).
  2. گروه Timer Resolution را روشن کنید.
  3. در داشبورد، عدد رزولوشن فعلی را چک کنید؛ باید نزدیک ۰٫۵ میلی‌ثانیه باشد.
  4. هنگام خروج از برنامه، تایمر به‌طور خودکار رها می‌شود.

چطور نتیجه را اندازه بگیریم (بدون توهم)

تنها معیار معتبر، اندازه‌گیری قبل و بعد است. با ابزارهایی مثل LatencyMon (تأخیر درایور و تایمر) و PresentMon (فریم‌تایم و زمان ارائه فریم) دو بار در همان صحنه بازی تست بگیرید: یک‌بار با تنظیم پیش‌فرض، یک‌بار با تایمر ۰٫۵. میانگین و صدک ۹۹ فریم‌تایم را مقایسه کنید.

اگر تفاوت در حد نویز بود، تایمر گلوگاه شما نیست — به‌جای آن سراغ پاک‌سازی حافظه، تنظیمات کارت گرافیک یا کیفیت شبکه بروید.

پرسش‌های پرتکرار

آیا تنظیم تایمر باعث بن شدن در بازی‌ها می‌شود؟

خیر. رزولوشن تایمر یک تنظیم مستند ویندوز است و حافظه بازی را دست‌کاری نمی‌کند. آنتی‌چیت‌هایی مثل Vanguard یا EAC روی این تنظیم حساس نیستند. آنچه ریسک دارد استفاده از درایورهای کرنل ناشناس یا ابزارهای دور زدن آنتی‌چیت است، نه تنظیمات ویندوز.

چرا بعد از ری‌استارت، رزولوشن به ۱۵٫۶ برگشت؟

چون آن ابزار فقط تا زمان اجرا تایمر را نگه می‌دارد. برای تنظیم دائمی باید از روش bcdedit استفاده کنید یا تایمر را در ابزاری اجرا کنید که در استارت‌آپ قرار می‌گیرد.

روی لپ‌تاپ هم توصیه می‌شود؟

فقط زمانی که به برق متصل هستید و پروفایل Power را روی حالت High performance گذاشته‌اید. روی باتری، رزولوشن پایین‌تر (مثلاً ۱ یا ۲ میلی‌ثانیه) تعادل بهتری بین دما و تأخیر می‌دهد.

همین تنظیمات را با یک کلیک و بازگشت‌پذیر اعمال کنید

Frame Boost همین تغییرات را هنگام اجرا اعمال می‌کند و با بستن برنامه همه‌چیز را بازمی‌گرداند. گروه Timer Resolution رایگان است.

راهنماهای مرتبط