لماذا تتأخر ألعاب المتصفح (وكيف تصلحها)

نقرة الماوس تصل إلى لعبة أصيلة خلال بضعة أجزاء من الثانية. في لعبة متصفح، تنتظر النقرة نفسها في طابور خلف نظام التشغيل ومحرك JavaScript ومُركِّب العرض قبل أن تصبح بكسلًا. إليك أين يضيف المتصفح التأخير، وكيف تقيس حصتك منه، والحلول التي تحرّك الرقم فعلًا.

مخطط ساعة إيقاف يوضح مراحل تأخر الإدخال بين نقرة الماوس واستجابة لعبة المتصفح
بين نقرتك والبكسل، تمر نقرة المتصفح بأيدٍ أكثر مما تظن.

سلسلة الإدخال، من المفتاح إلى البكسل

كل نقرة تقوم بها تسافر على خط تجميع. كل مرحلة تضيف تأخيرها الخاص، والمتصفح يجلس في منتصفه:

المرحلةالتكلفة النموذجيةملاحظات
مفتاح الماوس + إزالة الارتداد1-4msالمفاتيح الضوئية هي الأسرع؛ راجع دليل إزالة الارتداد في الماوس
استطلاع USB / اللاسلكي1-8ms‏1ms عند استطلاع 1000Hz؛ وحتى 8ms عند 125Hz
إرسال الحدث من نظام التشغيل~1msرخيصة عادة، ما لم يكن النظام مثقلًا
إرسال الحدث من المتصفح1-10ms+اختبار الإصابة، الخيط الرئيسي لـJavaScript، الإضافات
انتظار requestAnimationFrame0-16.7msحتى إطار كامل عند 60Hz
مُركِّب العرض + التصيير2-8msحيث يهم تسارع العتاد
مسح الشاشة + استجابة البكسلات2-17msتحديث اللوحة وزمن استجابة البكسلات

اجمعها كلها وستجد أن لعبة متصفح على إعداد 60Hz قد تقف عند 40-60ms من التأخير بين النقرة والضوء قبل أن يفعل منطق اللعبة نفسه أي شيء. لعبة أصيلة مع raw input تتخطى عدة مراحل منها كليًا. هذه الفجوة هي بالضبط سبب شعور الماوس نفسه بالحدة على سطح المكتب وبالثقل في تبويب متصفح.

ضريبة الشاشة: 16.7ms قبل أن ترى أي شيء

إليك الحقيقة الجديرة بالمشاركة في حفلات الشبكة المحلية: عند 60Hz، يمكن للشاشة وحدها أن تضيف حتى 16.7ms من التأخير — إطارًا كاملًا — قبل أن تصبح نقرتك مرئية. تلك المرحلة الواحدة تكلف أكثر من خط أنابيب ماوس الألعاب بأكمله: مفتاح ضوئي جيد يُطلق في نحو 1ms واستطلاع 1000Hz يضيف 1ms أخرى.

الناس ينفقون بسعادة 150$ لحلاقة 2ms من الماوس بينما يتركون 16.7ms على الطاولة في إعدادات الشاشة. انتقل إلى 144Hz وتنخفض ضريبة الإطار إلى 6.9ms؛ وعند 240Hz تصبح 4.2ms. إذا كانت شاشتك قادرة لكنها مضبوطة خطأ — وهو وضع شائع بشكل محبط — فدليلنا حول التحقق من معدل التحديث الحقيقي يأخذ دقيقتين.

لا شيء من هذا يعني أن الماوس لا يهم. بل يعني أن زمن الاستجابة ميزانية تُنفق عبر السلسلة كلها، وأكبر البنود نادرًا ما تكون تلك صاحبة أفضل تسويق.

قياس حصة متصفحك من التأخير

لا يمكنك إصلاح ما لا تستطيع عزله. اختبار زمن استجابة الإدخال في المتصفح لدينا يقيس الجزء الذي يملكه المتصفح: يقارن الطابع الزمني لكل حدث إدخال بالساعة عالية الدقة عندما يعمل معالج الحدث فعلًا، ثم يبلّغ عن وسيط ونسبة مئوية 95 عبر دفعة من النقرات أو اللمسات أو ضغطات المفاتيح.

اقرأ النتائج هكذا: الوسيط هو تأخير الإرسال النموذجي — على متصفح سطح مكتب سليم، عادة في خانة الأجزاء المفردة من الثانية. والـp95 هو الذيل — مدى سوء الوضع عندما يتعثر الخيط الرئيسي. وسيط 2ms مع p95 قدره 30ms يعني أن متصفحك بخير في المتوسط لكنه يتوقف بانتظام، وهو ما يُحسّ في اللعبة كمدخلات تُبتلع عشوائيًا.

كن صادقًا بشأن ما يقيسه هذا: تأخير الإرسال عند حدود حدث المتصفح. لا يشمل مفتاح الماوس ولا نقل USB ولا مسح الشاشة — وقسم الدليل في الأداة نفسها يقول ذلك. للصورة الكاملة من الطرف إلى الطرف، اعمل على قائمة فحص تأخر الإدخال بعد الانتهاء من هنا.

لماذا يُحسّ الماوس نفسه أسوأ في المتصفح

الألعاب الأصيلة تقرأ الإدخال قريبًا من العتاد — واجهات raw input تحصل على بيانات الماوس بأقل مراسم. المتصفحات تسلك الطريق الخلاب. نظام التشغيل يسلّم الحدث للمتصفح، والمتصفح يقرر أي عنصر يقع تحت المؤشر (اختبار إصابة لكامل DOM)، ويرسله إلى JavaScript على الخيط الرئيسي، وعندها فقط يمكن لكود لعبتك أن يتفاعل. إذا كان الخيط الرئيسي مشغولًا بتنفيذ سكربت إعلان، فنقرتك تنتظر في الطابور.

ثلاثة مضخّمات خاصة بالمتصفحات:

هذا أيضًا سبب شعور لوحة المفاتيح بالإسفنجية في المتصفح بينما اللوحة نفسها فورية في تطبيق أصيل — نمط نتعمق فيه في هل لوحة مفاتيحي متأخرة وفي تحليل زمن استجابة لوحة المفاتيح الأعمق.

حلول تعمل فعلًا

بترتيب التأثير تقريبًا:

طبّقها واحدًا تلو الآخر وأعد تشغيل اختبار زمن الاستجابة بعد كل تغيير. مشاهدة الـp95 الخاص بك يهبط من 25ms إلى 6ms أقنع من أي دليل إعدادات.

المزامنة العمودية وإيقاع الإطارات، في فقرة واحدة

تصيير المتصفح مزامَن عموديًا (vsync): الإطارات تُعرض بالتزامن مع تحديث شاشتك. هذا جيد — يمنع التمزق — لكنه يعني أن لعبتك لا يمكنها التحديث إلا على حدود الإطارات، وأي إطار يفوت موعده النهائي ينتظر إطارًا إضافيًا كاملًا. عند 60Hz يكلف الموعد الفائت 16.7ms؛ وعند 240Hz يكلف الفوات نفسه 4.2ms. إيقاع الإطارات غير المتساوي هو سبب قدرة لعبة متصفح على الإبلاغ عن '60 FPS' ومع ذلك تُحسّ متلعثمة: الإطارات كلها موجودة، لكنها تصل في أوقات غير متساوية. معدل التحديث العالي هو أرخص علاج، لأنه يصغّر حجم كل خطأ ممكن.

عندما لا يكون المتصفح هو المشكلة

إذا فعلت كل ما سبق وما زالت الألعاب تُحسّ غريبة، فالعنق في مكان آخر من السلسلة. المشتبه بهم غير المتصفحيين المعتادون: تلفاز بدل شاشة (وضع الألعاب المطفأ قد يضيف 30-80ms)، لوحة مفاتيح أو ماوس بلوتوث، شاشة ما زالت عند 60Hz، حمل نظام ثقيل من تطبيق آخر، أو — في الألعاب الجماعية — زمن استجابة الشبكة ببساطة، وهي مشكلة مختلفة ترتدي الزي نفسه. ping قدره 20ms ليس تأخر إدخال، لكن يديك لا تستطيعان التفريق؛ مقالنا عن متوسط زمن رد الفعل يشرح لماذا 20ms تقع تمامًا عند حافة الإدراك البشري.

اعمل على النظام الكامل بمنهجية مع قائمة فحص تأخر الإدخال: قِس كل مرحلة، غيّر شيئًا واحدًا، قِس مجددًا. صيد زمن الاستجابة محبط فقط عندما تخمّن.

الخلاصة

ألعاب المتصفح تُحسّ متلعثمة لأن نقرة المتصفح تسافر أبعد من النقرة الأصيلة — عبر اختبار الإصابة، وخيط JavaScript الرئيسي، ومُركِّب عرض مزامَن عموديًا، وأخيرًا الشاشة. أكبر المكاسب مملة ومجانية: تسارع العتاد مفعّل، معدل التحديث مضبوط صحيحًا، تبويبات الخلفية والإضافات مقتولة، ملء الشاشة مفعّل، بلوتوث مطفأ. قِس تأخير إرسال متصفحك، وأصلح المراحل التي تتحكم بها، وعندها فقط الذم اللعبة. معظم «ألعاب المتصفح المتلعثمة» هي في الحقيقة إعدادات متصفح متلعثمة.

هل أنت مستعد لفحص أجهزتك بنفسك؟

اختبار زمن استجابة الإدخال في المتصفح

الأسئلة الشائعة

لماذا تُحسّ ألعاب المتصفح متلعثمة مقارنة بالألعاب الحقيقية؟

الألعاب الأصيلة تقرأ الإدخال عبر واجهات منخفضة المستوى بمعالجة ضئيلة. المتصفحات توجّه كل إدخال عبر إرسال نظام التشغيل واختبار إصابة DOM وخيط JavaScript الرئيسي قبل أن يراه كود اللعبة، ثم تعرض الإطارات مزامَنة مع شاشتك. تبويب مشغول أو شاشة 60Hz يضيفان بسهولة 20-40ms لا تدفعها اللعبة الأصيلة أبدًا.

كيف أقلل تأخر الإدخال في ألعاب المتصفح؟

الإصلاحات الخمسة الأعلى تأثيرًا: فعّل تسارع العتاد، واضبط شاشتك على معدل تحديثها الحقيقي، وأغلق تبويبات الخلفية والإضافات، والعب بملء الشاشة، واستخدم أجهزة سلكية أو 2.4GHz بدل بلوتوث. قِس التغيير بـاختبار زمن استجابة الإدخال في المتصفح بعد كل خطوة.

هل يضيف بلوتوث تأخر إدخال؟

نعم — عادة 10-20ms فوق كل شيء آخر، إضافة إلى توقفات عرضية عند إعادة إرسال الحزم. بلوتوث جيد للكتابة والعمل المكتبي، لكن في الألعاب فدونغل لاسلكي 2.4GHz أو اتصال سلكي أشد إحكامًا بشكل قابل للقياس.

هل تأخر إدخال المتصفح هو نفسه الـping؟

لا. تأخر الإدخال هو التأخير بين فعلك الفيزيائي وتفاعل اللعبة محليًا؛ أما ping فهو رحلة الشبكة ذهابًا وإيابًا إلى خادم. يُحسّان بنفس الطريقة في اليد — تنقر ويحدث شيء متأخرًا — ولهذا يُخلط بينهما. اختبار زمن الاستجابة يقيس تأخير الإرسال المحلي؛ أما ping فيحتاج اختبار شبكة.

هل شاشة 144Hz تقلل تأخر الإدخال في المتصفح؟

نعم، بطريقتين. انتظار الإطار المزامَن يهبط من حتى 16.7ms عند 60Hz إلى 6.9ms عند 144Hz، وأي موعد إطار فائت يكلف 10ms أقل. كل ما في المنبع — الماوس ونظام التشغيل وإرسال المتصفح — يبقى كما هو، لكن ضريبة جهة الشاشة تنكمش فورًا.

القائمة