كيف تحسين الاداء تكساس في برنامج تشغيل جهاز USB؟

StackOverflow https://stackoverflow.com/questions/633572

  •  10-07-2019
  •  | 
  •  

سؤال

وأنا وضعت برنامج تشغيل جهاز لجهاز USB 1.1 أوريكس Windows 2000 و في وقت لاحق مع طراز برنامج تشغيل Windows (WDM).

ومشكلتي هي أداء تكساس سيئة جدا عند استخدام 64byte نقل الجماعي. اعتمادا على USB المضيف يستخدم المراقب المالي القصوى حزمة الإنتاجية هي إما 1000 الحزم (UHCI) أو حزم 2000 (OHCI) في ثواني. لقد وضعت سائق مماثل على نواة لينكس 2.6 مع جولة حوالي 5000 الحزم في الثانية الواحدة.

وسائق لينكس يستخدم ما يصل إلى 10 نقل الجزء الأكبر غير متزامن في حين يستخدم برنامج تشغيل Windows 1 نقل الجزء الأكبر متزامن. لذلك بمقارنة هذا يجعل من الواضح بينما كان الأداء سيئا للغاية، لكنني حاولت بالفعل مع نقل الجزء الأكبر غير متزامن وكذلك دون جدوى (أي مكسب الأداء).

هل أي شخص لديه بعض النصائح والحيل كيفية تعزيز الأداء على ويندوز؟

هل كانت مفيدة؟

المحلول

ولقد تمكنت الآن لتسريع ارسال إلى نحو 6.6k الرسائل / ثانية. وكان الحل بسيط جدا، وأنا قد نفذت تماما نفس الآلية كما في برنامج التشغيل لينكس.

وحتى الآن أنا جدولة ما يصل الى 20 URBs في آن واحد، على ما ينبغي أن أقول، أنه يعمل.

نصائح أخرى

ما هو نوع من الإنتاجية أنت تحصل؟ USB 1.1 يقتصر على حوالي 1.5 ميغابت / ثانية

قد يكون وجود قيود التي سيكون لديك للعيش مع وشيء واحد يجب عليك القيام به أبدا هو تجويع نظام الموارد. لقد رأيت الكثير من تطبيقات سائق الفقيرة حيث كان السائق القص موارد النظام في الفشل الذريع لزيادة أدائها.

وتخميني هو أن كنت باستخدام المكالمات API خاطئة، هل نظرت إلى عينات USB في Win32 وDDK؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top