2011-01-11 10 views
6

मैं .NET C# अनुप्रयोग के संसाधनों का उपयोग करता हूं, जैसे सीपीयू या मेमोरी के बारे में कुछ परीक्षण कर रहा हूं। मैंने कुछ लूप लिखे हैं जो बड़ी संख्या में मूल्यों की गणना करते हैं और मैं एल्गोरिदम के वजन से संतुष्ट हूं।मेरा सी # एप्लिकेशन एकाधिक प्रोसेसर कोर का लाभ उठाने के लिए मैं क्या कर सकता हूं?

मैं एक क्वाड कोर 2.4 GHz प्रोसेसर है, लेकिन मैंने देखा है कि कार्य प्रबंधक में, मेरा एप्लिकेशन को केवल सीपीयू के 25% उपयोग कर रहा है। यह 100% का उपयोग क्यों नहीं कर रहा है? क्या इसका मतलब यह है कि वीएस 2008 में संकलित एक .NET C# अनुप्रयोग केवल सिंगल कोर सीपीयू का समर्थन करता है? या क्या कोई तरीका है कि मैं इसे सभी CPUs का उपयोग करने के लिए मजबूर कर सकता हूं?

+1

अब अपना कोड चलाने में कितना समय लगता है? क्या आप वाकई अतिरिक्त गति की ज़रूरत है? यह आपके कार्यक्रम को काफी जटिल बना सकता है। – Justin

+0

हालांकि आपको वास्तव में अपने आवेदन को कई मूल उपयोग के साथ डिजाइन करना होगा; अपने आवेदन में कार्यों की योजना बनाएं जो सीपीयू गहन हैं और देखें कि क्या आप उन्हें एसिंक्रोनस ऑपरेशंस में काट सकते हैं। – RobS

उत्तर

1

के बारे में क्या अगर मैं पृष्ठभूमि कार्यकर्ता उपयोग करते हैं, अगर मैं सीपीयू के quadcore 4CPU के किसी कर सकते हैं एक उदाहरण यह कैसे प्रतिक्रिया कर सकता है @ कि सीपीयू बारे में है?

+2

हां, पृष्ठभूमि कर्मचारी अलग-अलग धागे में भाग लेंगे और सीपीयू उपयोग के 1 कोर से अधिक की अनुमति देंगे। 4 कोर का उपयोग करने के लिए आपको कुल 4 धागे की आवश्यकता होगी। कठिन हिस्सा यह पता लगा रहा है कि अलग-अलग नौकरियों में अपना काम कैसे तोड़ना है। – Justin

2

यह 1 मूल में चलाने जब तक आप विशेष रूप से कुछ सूत्रण शुरू कर देंगे।

सबसे आसान तरीका है ThreadPool पर एक विधि पुश करने के लिए है।

System.Threading.ThreadPool.QueueUserWorkItem(DoSomething); 

    void DoSomething() { ... } 
5

यह सब इस बात पर निर्भर करता है कि आप एक से अधिक कोर का उपयोग करने के लिए अपने कोड को कैसे संशोधित कर सकते हैं।

जब तक आप समानांतर या बहु पिरोया संचालन कर रहे हैं, तो कार्यक्रम एक से अधिक कोर का उपयोग नहीं होगा। समानांतर LINQ:

.NET 4 एक पुस्तकालय है कि आप मदद कर सकता है। अधिक जानकारी के लिए यह पृष्ठ देखें: http://msdn.microsoft.com/en-us/library/dd997425.aspx

2

.NET 4.0TaskLibrary का उपयोग करें जो बहु-कोर प्रोसेसर से लाभान्वित करने के लिए डिज़ाइन किया गया है।

संबंधित मुद्दे

 संबंधित मुद्दे