كيفية تعظيم الطاقة المستخدمة من قبل طلبي في C #؟

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

  •  23-08-2019
  •  | 
  •  

سؤال

كما قمت بإنشاء التطبيق الذي هو صعب على العمليات الحسابية -> الكثير من العمل للقيام به، وليس الحسابات المعقدة للغاية -> يستغرق الأمر وقتا طويلا للعمل في الخارج والعملية فقط عند 45٪ من وحدة المعالجة المركزية. هل يمكنني تعظيمها بطريقة أو بأخرى؟: للذهاب إلى 90٪؟

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

المحلول

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

للحصول على 90٪ استخدام وحدة المعالجة المركزية، سوف تحتاج على الأرجح إلى مؤشرات الحسابات الخاصة بك. قد يكون هذا بسيطا للغاية، أو صعبا للغاية، اعتمادا على طبيعة الخوارزمية التي تريدها.

إذا كان بإمكانك تفريق عملك في مجموعات متعددة، فسوف أوصي بالنظر في استخدام تجمع موضوع, ، أو يحتمل حتى مكتبة المهمة الموازية, ، اعتمادا على توقيتك للإفراج.

نصائح أخرى

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

افحص هذا:

  1. هل تقرأ من القرص أثناء حسابه؟ إذا كان الأمر كذلك، فحاول قراءة البيانات في الذاكرة قبل الحسابات.
  2. هل تكتب النتائج على القرص أو وحدة التحكم أثناء حسابها؟ إذا كان الأمر كذلك، فحاول تأجيل الكتابة حتى انتهى الحساب ثم تكتب.
  3. إذا كان لديك معالج متعدد الصور، فحاول إنشاء خوارزمية متعددة مؤشرات الترابط إذا أمكن ذلك.

إذا كان لديك حلقة بسيطة فقط تقوم بعمل الحسابات، فمن المرجح أن يحتوي جهاز الكمبيوتر الخاص بك على اثنين من النوى / المعالجات. سيتم استخدام تطبيق واحد الخيوط في أفضل مستويات 50٪ من وحدة المعالجة المركزية.

تحتاج إلى مواضيع متعددة لاستخدام وحدة المعالجة المركزية بأكملها على جهاز متعدد النواة.

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