عند المقارنة ، ما يسبب فجوة بين الوقت وحدة المعالجة المركزية و "انقضى الوقت الحقيقي" ؟

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

  •  21-08-2019
  •  | 
  •  

سؤال

أنا باستخدام المدمج في وحدة القياس لبعض سريعة وقذرة الاختبارات.أنه يعطي لي:

  • الوقت وحدة المعالجة المركزية
  • نظام وحدة المعالجة المركزية في الوقت (في الواقع أنا لم تحصل على أي نتيجة هذا مع رمز أنا على التوالي)
  • مجموع المستخدم و نظام وحدة المعالجة المركزية مرات (دائما نفس الوقت وحدة المعالجة المركزية في حالتي)
  • فإن انقضى الوقت الحقيقي

لم أكن أعلم أنني بحاجة كل تلك المعلومات.

أنا فقط أريد أن المقارنة بين اثنين من قطعة من التعليمات البرمجية ومعرفة أي واحد يأخذ وقتا أطول.وأنا أعلم أن قطعة واحدة من التعليمات البرمجية ربما لا أكثر جمع القمامة من الآخر ولكن أنا لست متأكدا من كيفية تأثير كبير علينا.

أي الأفكار التي متري يجب أن تبحث في ؟

و الأهم من ذلك ، يمكن للشخص أن يفسر لماذا "انقضى الوقت الحقيقي" هو دائما أطول من الوقت CPU - ما هي أسباب تأخر بين الاثنين ؟

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

المحلول

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

مثال ، إذا كانت العملية:

  • تستخدم وحدة المعالجة المركزية لثانية واحدة تشغيل التعليمات البرمجية الخاصة بك;ثم
  • تستخدم وحدة المعالجة المركزية لثانية واحدة تشغيل نظام التشغيل kernel المدونة ؛ ثم
  • كان بدلت لمدة سبع ثوان في حين أن آخر عملية ركض;ثم
  • تستخدم وحدة المعالجة المركزية لمدة ثانية واحدة تشغيل التعليمات البرمجية الخاصة بك ،

كنت قد رأيت:

  • عشر ثواني الوقت المنقضي ،
  • ثانيتين الوقت المستخدم ،
  • ثانية واحدة نظام الوقت ،
  • ثلاث ثوان إجمالي وقت وحدة المعالجة المركزية.

الثلاث ثواني ما عليك أن تقلق بشأنه منذ عشر يعتمد كليا على تقلبات عملية الجدولة.

نصائح أخرى

تعدد المهام في نظام التشغيل الأكشاك في انتظار I/O ، وغيرها من لحظات عندما كنت في المدونة لا تعمل بنشاط.

كنت لا تريد أن نستبعد تماما على مدار الساعة-على جدار الزمن.وقت الانتظار w/o موضوع آخر على استعداد للاستفادة من دورات وحدة المعالجة المركزية قد تجعل المرء قطعة من التعليمات البرمجية أقل من المرغوب فيه من أخرى.مجموعة واحدة من التعليمات البرمجية قد يستغرق بعض الوقت وحدة المعالجة المركزية ولكن توظيف متعدد خيوط السيطرة على رمز آخر في العالم الحقيقي.يعتمد على متطلبات و خصوصيات.وجهة نظري ...استخدام جميع المقاييس المتاحة لك لجعل قراركم.

كما ممارسة جيدة إذا كنت ترغب في مقارنة قطعتين من التعليمات البرمجية يجب أن يتم تشغيل عدد قليل من العمليات الدخيلة ممكن.

كما قد يكون الحال أن الوقت وحدة المعالجة المركزية عند التعليمات البرمجية بتنفيذ لا تحصى.

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

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