توضِّح هذه الصفحة الطرق الشائعة لقياس وقت استجابة الإدخال والإخراج.
قياس وقت استجابة الإخراج
هناك العديد من التقنيات المتاحة لقياس وقت استجابة الإخراج، بدرجات متفاوتة من الدقة وسهولة التنفيذ، كما هو موضّح أدناه. يمكنك أيضًا الاطّلاع على دائرة الاختبار للاطّلاع على مثال على بيئة الاختبار.
اختبار مصباح LED ورسم الذبذبات
يقيس هذا الاختبار وقت الاستجابة في ما يتعلّق بمؤشر LED للجهاز. إذا لم يكن جهاز الإنتاج مزوّدًا بمصباح LED، يمكنك تثبيته على جهاز نموذجي. للحصول على دقة أفضل في النماذج الأولية للأجهزة التي تحتوي على دوائر كهربائية مكشوفة، يمكنك توصيل أحد probed oscilloscope بوحدة LED مباشرةً لتجاوز وقت استجابة ملف تعريف حساس قياس شدة ضوء الشمس.
إذا لم تتمكّن من تثبيت مصباح LED على الجهاز النموذجي أو جهاز الإنتاج، جرِّب الحلول البديلة التالية:
- استخدِم دبوس إدخال/إخراج (GPIO) للأغراض نفسها.
- استخدِم JTAG أو منفذ تصحيح أخطاء آخر.
- استخدِم الإضاءة الخلفية للشاشة. قد يكون هذا الإجراء خطيرًا لأنّه قد يكون للضوء الخلفي وقت استجابة غير مهمل، ويمكن أن يساهم في قراءة وقت استجابة غير دقيق.
لإجراء هذا الاختبار:
- شغِّل تطبيقًا يُشعل ضوء LED بشكل دوري ويُصدِر الصوت في الوقت نفسه.
ملاحظة: للحصول على نتائج مفيدة، من المهم استخدام واجهات برمجة التطبيقات الصحيحة في التطبيق التجريبي حتى تتمكّن من استخدام مسار الإخراج الصوتي السريع. اطّلِع على التصميم لتقليل وقت الاستجابة لمزيد من المعلومات عن الخلفية.
- ضَع أداة استشعار الضوء بجانب مصباح LED.
- وصِّل أطراف مقياس الجهد الكهربي ذو القناتَين بمقابس سماعات الرأس السلكية (مخرج الخط) وجهاز استشعار الضوء.
- استخدِم مقياس الجهد الكهربي لقياس اختلاف التوقيت بين رصد إشارة إخراج الخط مقارنةً بإشارة ملف ضوئي.
الفرق في الوقت هو وقت الاستجابة التقريبي لإخراج الصوت، بافتراض أنّ وقت استجابة مصباح LED ووقت استجابة أداة استشعار الضوء هما صفر. عادةً ما يكون لمصباح LED ومستشعر الإضاءة وقت استجابة منخفض نسبيًا يتراوح بين ملي ثانية واحدة أو أقل، وهو وقت استجابة منخفض بما يكفي لتجاهله.
قياس وقت الاستجابة ذهابًا وإيابًا
وقت استجابة المسار الكامل هو مجموع وقت استجابة الإخراج ووقت استجابة الإدخال.
اختبار لارسن
من أسهل اختبارات وقت الاستجابة هو اختبار الملاحظات الصوتية (تأثير لارسن). يقدّم ذلك قياسًا تقريبيًا لوقت استجابة الإخراج ووقت استجابة الإدخال معًا من خلال توقيت حلقة استجابة النبضات. لا يكون هذا الاختبار مفيدًا جدًا لإجراء تحليل مفصّل بمفرده بسبب طبيعة الاختبار، ولكن يمكن أن يكون مفيدًا لأجل معايرة الاختبارات الأخرى وتحديد حدّ أقصى.
لا تُقسّم هذه الطريقة أوقات المكوّنات، وهو أمر مهم عندما تكون مدة استجابة الإخراج ومدة استجابة الإدخال مستقلّتَين. لذلك، لا يُنصح باستخدام هذه الطريقة لقياس قيم وقت استجابة الإخراج أو وقت استجابة الإدخال بدقة بشكل منفصل، ولكن قد تكون مفيدة لإنشاء تقديرات تقريبية.
يمكن أن يكون وقت استجابة الصوت المُرسَل إلى مكبّر الصوت على الجهاز أكبر بكثير من وقت استجابة الصوت المُرسَل إلى موصل سماعة الرأس. ويعود ذلك إلى ميزة تصحيح الصوت وحماية مكبّرات الصوت.
لإجراء هذا الاختبار:
- تشغيل تطبيق يسجِّل الصوت من الميكروفون ويشغِّل البيانات المسجَّلة على الفور من خلال مكبّر الصوت
- يمكنك إنشاء صوت خارجي، مثل النقر على قلم رصاص بجانب الميكروفون. تؤدي هذه الضوضاء إلى إنشاء حلقة ملاحظات وآراء. بدلاً من ذلك، يمكن إدخال دفعة في الحلقة باستخدام البرامج.
- يمكنك قياس الوقت بين نبضات الملاحظات للحصول على مجموع وقت استجابة الإخراج ووقت استجابة الإدخال والوقت الإضافي الذي يستغرقه التطبيق.
في ما يلي بعض المراجع للحصول على تطبيق لاختبار Larsen:
- تطبيق Dr. Rick O'Rang loopback هو تطبيق Android لاختبار الملاحظات الصوتية. يمكنك تنزيل التطبيق من Google Play أو الحصول على الرمز المصدر من GitHub.
-
لقد نشرنا أيضًا مثالاً على التنفيذ فيملف slesTestFeedback.cpp.
هذا تطبيق سطر أوامر ويتم إنشاؤه باستخدام بيئة إنشاء النظام الأساسي،
ومع ذلك، من المفترض أن يكون من السهل استخدام الرمز في البيئات الأخرى.
ستحتاج أيضًا إلى رمز FIFO غير المحظور
المتوفّر في مكتبة
audio_utils
.
مفتاح إلكتروني لإعادة توجيه الصوت
إنّ محوِّل Dr. Rick O'Rang audio loopback dongle مفيد لقياس وقت الاستجابة للذهاب والعودة عبر موصل سماعة الرأس. توضِّح الصورة أدناه نتيجة حقن دافع في الحلقة مرّة واحدة، ثم السماح لحلقة التغذية المرتدة بالاهتزاز. وفترة التذبذبات هي وقت الاستجابة ذهابًا وإيابًا. لا يتم تحديد الجهاز والإصدار المحدّدَين من البرنامج وشروط الاختبار هنا. يجب عدم استقراء النتائج المعروضة.

الشكل 1: قياس مسار الإحالة الناجحة
قد تحتاج إلى إزالة كابل USB لتقليل الضوضاء، وضبط مستوى الصوت للحصول على اهتزاز ثابت.
قياس وقت استجابة الإدخال
من الصعب قياس وقت استجابة الإدخال أكثر من وقت استجابة الإخراج. قد تساعدك الاختباران التاليان:
أحد النهج هو تحديد وقت استجابة الإخراج أولاً باستخدام طريقة مصباح LED وجهاز قياس الجهد الكهربي، ثم استخدام اختبار الملاحظات الصوتية (Larsen) لتحديد مجموع وقت استجابة الإخراج ووقت استجابة الإدخال. يتمثل الفرق بين هذين القياسَين في وقت استجابة الإدخال.
هناك أسلوب آخر وهو استخدام دبوس GPIO على جهاز نموذجي. خارجيًا، شغِّل إشارة GPIO في الوقت نفسه الذي تقدّم فيه إشارة صوتية إلى الجهاز. شغِّل تطبيقًا يقارن بين الفرق في أوقات وصول إشارة GPIO وبيانات الصوت.
تقليل وقت الاستجابة
لتحقيق وقت استجابة منخفض للصوت، يجب الانتباه بشكل خاص في
النظام إلى الجدولة ومعالجة الانقطاعات وإدارة الطاقة وتصميم
برنامج تشغيل الجهاز. هدفك هو منع أي جزء من المنصة من
حظر سلسلة محادثات صوتية على SCHED_FIFO
لأكثر من بضع
مللي ثانية. من خلال اعتماد نهج منهجي كهذا، يمكنك تقليل
وقت استجابة الصوت والحصول على ميزة جانبية تتمثل في أداء أكثر قابلية للتنبؤ
بشكل عام.
عند حدوث تأخّر في عرض الصوت، لا يمكن غالبًا رصده إلا في حالات معيّنة أو عند الانتقالات فقط. جرِّب تحميل النظام من خلال تشغيل تطبيقات جديدة والانتقال بسرعة بين شاشات العرض المختلفة. ولكن عليك الانتباه إلى أنّ بعض شروط الاختبار تكون قاسية جدًا لدرجة أنّها تتجاوز أهداف التصميم. على سبيل المثال، يؤدي إعداد تقرير عن خطأ إلى تحميل هائل على النظام، وقد يكون من المقبول حدوث تأخّر في هذه الحالة.
عند اختبار حالات انخفاض السرعة:
- اضبط أي وحدة معالجة إشارة رقمية بعد وحدة معالجة التطبيقات لكي تضيف الحد الأدنى من وقت الاستجابة.
- يمكنك إجراء الاختبارات في ظروف مختلفة، مثل تشغيل الشاشة أو إيقافها، وتوصيلها أو فصلها بجهاز USB، وتفعيل شبكة Wi-Fi أو إيقافها، وتفعيل البلوتوث أو إيقافه، وتفعيل تقنيةَي الهاتف اللاسلكي ونقل البيانات أو إيقافهما.
- اختَر موسيقى هادئة نسبيًا ومألوفة لك، وسهل التقاط ملفاتها عند تشغيلها.
- استخدِم سماعات رأس سلكية للحصول على حساسية إضافية.
- خذ فترات راحة كي لا تشعر بـ "إرهاق الأذن".
بعد العثور على الأسباب الأساسية لانخفاض معدلات التشغيل، يمكنك تقليل أعداد وحدات التخزين المؤقت وأحجامها للاستفادة من ذلك. إنّ النهج المتسرع لتقليل أعداد وحجم ذاكرة التخزين المؤقت قبل تحليل حالات عدم توفّر مساحة كافية وإصلاح أسبابها فقط يؤدي إلى الإحباط.
الأدوات
systrace
هي أداة ممتازة للأغراض العامة
لتشخيص مشاكل الأداء على مستوى النظام.
يحتوي الناتج من dumpsys media.audio_flinger
أيضًا على
قسم مفيد يُسمى "الإحصاءات المتحركة البسيطة". يتضمّن هذا الملخّص
التباين في الأوقات المنقضية لكل مزيج صوتي ودورة إدخال/إخراج.
من الناحية المثالية، يجب أن تكون جميع قياسات الوقت متساوية تقريبًا مع متوسط
مدة دورة التشغيل. إذا رأيت حدًا أدنى منخفضًا جدًا أو حدًا أقصى مرتفعًا جدًا، يشير ذلك إلى
وجود مشكلة، من المحتمل أن يكون وقت استجابة الجدولة أو وقت إيقاف المقاطعة
مرتفعًا. يُعدّ جزء الذيل من الإخراج مفيدًا بشكل خاص،
لأنّه يُبرز التباين الذي يتجاوز 3 انحرافات معيارية +/-.