मैं वर्तमान में एक बहुप्रचारित अनुप्रयोग की समीक्षा/पुन: सक्रिय कर रहा हूं जिसे सभी उपलब्ध कोरों का उपयोग करने में सक्षम होने के लिए बहुसंख्यक माना जाता है और सैद्धांतिक रूप से बेहतर/बेहतर प्रदर्शन प्रदान करता है (बेहतर बेहतर व्यावसायिक शब्द बेहतर होता है: पी)मल्टीथ्रेड कोड में प्रदर्शन कारणों से क्या बचें?
मल्टीथ्रेड किए गए एप्लिकेशन प्रोग्रामिंग करते समय मुझे क्या पता होना चाहिए?
मेरा मतलब है कि चीजें जो प्रदर्शन को बहुत प्रभावित करती हैं, यहां तक कि उस बिंदु तक भी जहां आपको मल्टीथ्रेडिंग के साथ कुछ भी नहीं मिलता है लेकिन डिजाइन जटिलता से बहुत कुछ खो देता है। मल्टीथ्रेडिंग अनुप्रयोगों के लिए बड़े लाल झंडे क्या हैं?
क्या मुझे ताले पर सवाल पूछना चाहिए और लॉक-फ्री रणनीति की तलाश करना चाहिए या क्या अन्य बिंदुएं अधिक महत्वपूर्ण हैं जो चेतावनी प्रकाश को प्रकाश देनी चाहिए?
संपादित करें: उत्तरों की तरह मैं चाहता Janusz से जवाब देने के लिए समान हैं, मैं लाल चेतावनी कोड में देखना चाहते हैं, मुझे पता है कि आवेदन के साथ-साथ यह होना चाहिए, मैं जरूरत प्रदर्शन नहीं करता यह जानने के लिए कि कहां देखना शुरू करना है, मुझे क्या चिंता करनी चाहिए और मुझे अपने प्रयास कहां रखना चाहिए। मुझे पता है कि यह एक सामान्य सवाल है लेकिन मैं पूरे कार्यक्रम को पोस्ट नहीं कर सकता हूं और यदि मैं कोड का एक सेक्शन चुन सकता हूं तो मुझे पहले स्थान पर पूछने की आवश्यकता नहीं होगी।
मैं डेल्फी 7 का उपयोग कर रहा हूं, हालांकि आवेदन अगले वर्ष के लिए .NET (C#) में पोर्ट/रीमेक किया जाएगा, इसलिए मैं सामान्य अभ्यास के रूप में लागू होने वाली टिप्पणियां सुनूंगा, और यदि वे विशिष्ट होना चाहिए या तो उन भाषाओं में से एक
अच्छा! मुझे यह नहीं पता था कि, मुझे एक ऐसा अनुभाग मिला है जहां मैं एक इंटरलॉक वृद्धि करता हूं (असल में: असेंबलर में "लॉक इंक") और मैंने कभी भी कैश लाइनों के बारे में सोचना बंद नहीं किया है। +1, मुझे लगता है कि मैं एक +2 –
दे सकता हूं @Zan Lynx यह सच है भले ही आपने परमाणु चर का उपयोग किया हो? जॉर्ज की ओर से +1। :) –
@ काज़र्क: हाँ।परमाणु पहुंच (इंटेल पर LOCK के साथ) कुछ हार्डवेयर में भी धीमी है। –