गहन कार्यों को चलाने के दौरान अंगूठे का एक बहुत अच्छा नियम आपके भौतिक कोर के समान संख्या को चलाने के लिए है गिनती।
हाँ, आप अधिक कार्य चला सकते हैं, लेकिन वे (एक धागा पूल में या धागे) संसाधनों के लिए इंतजार करेंगे और अपने बॉक्स, आकार की परवाह किए बिना काफी सीपीयू कोर संसाधनों के सभी आवंटित नहीं कर सकता करने के लिए समय की 100% पृष्ठभूमि/अन्य प्रक्रियाओं के कारण धागा। तो जितना अधिक कार्य आप तत्काल करते हैं, उतने अधिक थ्रेड जो आप उत्पन्न करते हैं, क्योंकि वे वास्तविक संभावित समवर्ती धागे (1 प्रति कोर) को पार करते हैं, अधिक संसाधन प्रबंधन, क्यूइंग और स्वैपिंग घटित होती है।
एक परीक्षण हमने किया था जहां मैंने अब अतिरिक्त कार्यों को लॉन्च करने के लिए वायरल पैटर्न का उपयोग करके काम किया था, यह पाया गया कि इष्टतम सीपीयू गिनती के करीब कैप के रूप में बहुत करीब था। भौतिक कोर गिनती के साथ एक-से-एक अनुपात में लॉन्च किए गए कार्य पूर्ण होने के लिए लगभग 1 मिनट कार्यरत थे। सीपीयू गिनती को डबल पर सेट करें, कार्य समय 1 मिनट औसत से लगभग 5 मिनट तक पूरा होने के लिए औसत समय पर चला गया। यह मूल कोर गिनती से शुरू किए गए अधिक कार्यों को ज्यामितीय रूप से धीमा कर देता है।
तो उदाहरण के लिए, यदि आपके पास 8 भौतिक कोर हैं, 8 कार्य (और टीपीएल का उपयोग करना, सक्रिय प्रक्रिया में अनिवार्य रूप से 8 समवर्ती धागे) सबसे तेज़ होना चाहिए। आपका मुख्य धागा या प्रक्रिया है जो अन्य कार्यों, और अन्य पृष्ठभूमि प्रक्रियाओं को बनाती है, लेकिन यदि आपके संसाधन शोषण खुशी के लिए बॉक्स बहुत अलग है, तो वे काफी कम होंगे।
कोर गिनती के आधार पर अपनी टास्क कैप प्रोग्रामिंग का उछाल जब आप कतार या सूची से कार्य चबाते हैं तो जब आप विभिन्न आकार के बक्से पर एप्लिकेशन को तैनात करते हैं, तो यह स्वचालित रूप से स्वयं को समायोजित करता है।
प्रोग्राम के रूप में यह निर्धारित करने के लिए, हम
var CoreCount = System.Environment.ProcessorCount/2;
का उपयोग क्यों दो से विभाजित, आप से पूछना? क्योंकि लगभग सभी आधुनिक प्रोसेसर तार्किक कोर या हाइपरथ्रेडिंग का उपयोग करते हैं। आपको अपने परीक्षण के साथ मिलना चाहिए कि यदि आप लॉजिकल गिनती का उपयोग करते हैं, तो प्रति कार्य की आपकी समग्र गति, और इस प्रकार पूरी प्रक्रिया, काफी कम हो जाएगी। भौतिक कोर कुंजी है। हम भौतिक बनाम तार्किक खोजने का एक त्वरित तरीका नहीं देख पाए लेकिन हमारे बक्से के त्वरित सर्वेक्षण ने यह लगातार सत्य पाया। वाईएमएमवी, लेकिन यह आपके बहुत सुंदर तेज़ हो सकता है।
धागे क्या कर रहे हैं? –
+1 अच्छा सवाल है। वे प्रत्येक सोम डेटा संचारित करने के लिए एक एसओएपी कॉल करते हैं और – Mawg
वापस लौटने के लिए प्रतीक्षा करते हैं, बेशक, "वापसी" एसिंच है, इसलिए वे वास्तव में प्रतीक्षा नहीं कर रहे हैं। अन्य धागे जैसे ही एसओएपी अनुरोध (fcuntion कॉल) HTTP – Mawg