मैं अपने कोड में एक बहुत ही महत्वपूर्ण महत्वपूर्ण स्थान में वर्तमान चलने वाले थ्रेड की आईडी का उपयोग करने जा रहा हूं, इसलिए मुझे यह चुनना चाहिए कि उस आईडी को कहीं कैश करना है या किसी विधि को कॉल करना है (gettid
यूनिक्स-जैसी प्रणालियों के लिए और GetCurrentThreadId
विंडोज़ के लिए) हर बार इसे पाने के लिए। तो कौन सा बेहतर है? थ्रेड आईडी एक सिस्टम कॉल हो रही है?वर्तमान थ्रेड समय की आईडी प्राप्त करने का संचालन महंगा है?
उत्तर
नहीं, यह एक महंगी कॉल नहीं है। यह एक सिस्टम कॉल या समान है, लेकिन एक महंगी से बहुत दूर है। जाहिर है, यदि आप एक वैरिएबल वैरिएबल में वैल्यू कैश कर सकते हैं तो यह 10 के कारक से तेज़ी से बढ़ेगा।
लेकिन सभी प्रदर्शन संबंधी प्रश्नों की तरह, यह वास्तव में आपके बेंचमार्किंग पर है। आप एक थ्रेड का उपयोग करने के लिए चीजों को आसानी से सेट कर सकते हैं, थ्रेड आईडी प्राप्त करने के लिए फ़ंक्शन को कॉल कर सकते हैं, और जो भी आप करना चाहते हैं उसे करें। मापें कि इसके साथ कुछ परीक्षण चलाने में कितना समय लगता है। फिर थ्रेड आईडी के लिए उसी श्रेणी में स्थिर मान के साथ कॉल को प्रतिस्थापित करें, और देखें कि यह कैसे काम करता है।
कम से कम विंडोज़ में, GetCurrentThreadId()
काफी सस्ते है, और इसमें सिस्टम कॉल शामिल नहीं है। मूल रूप से यह करने के लिए बाहर काम करता है:
int GetCurrentThreadId() {
_asm {
mov eax, fs:[18h]
mov eax, [eax+24h]
}
}
अपनी खुद की वैरिएबल के मान कैशिंग करने के लिए एक छोटे से लाभ, लेकिन नहीं एक बहुत वहाँ हो सकता है। मुख्य लाभ संभवतः होगा यदि आपने अपने चर को अन्य अक्सर उपयोग किए जाने वाले चर के साथ संग्रहीत किया है, जो इलाके में सुधार कर सकता है (और इसलिए कैश उपयोग)।
तो, जब तक कि आप इस तरह के तंग लूप पर काम नहीं कर रहे हैं कि स्मृति मेमोरी (या संभवतः दो) को खत्म करने की संभावना महत्वपूर्ण है, तो आपके द्वारा लौटाए जाने वाले मूल्य को कैश करके बहुत अधिक लाभ उठाने की संभावना नहीं है।
- 1. वर्तमान विधि कॉल की थ्रेड आईडी प्राप्त करना
- 2. PHP में सबसे महंगा संचालन?
- 3. वर्तमान तत्व की चेतावनी आईडी
- 4. वर्तमान संस्कृति क्यों थ्रेड की संपत्ति है?
- 5. वर्तमान में पायरोकम्स में उपयोगकर्ता की आईडी कैसे प्राप्त करें?
- 6. वर्तमान पोस्ट की वर्डप्रेस पोस्ट आईडी प्राप्त करना
- 7. वर्तमान सिस्टम समय प्राप्त करें?
- 8. थ्रेड आईडी से थ्रेडनाम प्राप्त करें
- 9. क्या HttpSession थ्रेड सुरक्षित है, विशेषता थ्रेड सुरक्षित संचालन सेट/प्राप्त कर रहे हैं?
- 10. एंड्रॉइड: वर्तमान विषय की संसाधन आईडी कैसे प्राप्त करें?
- 11. मैं वर्तमान श्रेणी आईडी कैसे प्राप्त करूं?
- 12. वर्तमान प्रक्रिया आईडी कैसे प्राप्त करें?
- 13. वर्तमान सिस्टम समय प्राप्त करें
- 14. वर्तमान में निष्पादित थ्रेड के लिए TThread ऑब्जेक्ट प्राप्त करें?
- 15. थ्रेड पूल से थ्रेड आईडी कैसे प्राप्त करें?
- 16. .NET क्या पैरेंट थ्रेड आईडी प्राप्त करने का कोई तरीका है?
- 17. थ्रेड आईडी बनाम थ्रेड हैंडल
- 18. वर्तमान थ्रेड विधि जावा
- 19. क्या जावा थ्रेड की अपनी प्रक्रिया आईडी है?
- 20. बूस्ट :: date_time का उपयोग कर वर्तमान समय क्षेत्र में वर्तमान समय प्राप्त करने का सबसे आसान तरीका?
- 21. जावा (सोलर) थ्रेड डंप कितने महंगा हैं?
- 22. जेएमटर वर्तमान थ्रेड संख्या?
- 23. ट्रीसेट में आदेशित संचालन की समय जटिलता क्या है?
- 24. वर्तमान जावा थ्रेड
- 25. वर्तमान जीपीएस समय कैसे प्राप्त करें?
- 26. क्या class.getName() महंगा है?
- 27. मानक लाइब्रेरी का उपयोग करके बनाए गए थ्रेड की winapi आईडी कैसे प्राप्त करें?
- 28. मैं एक मनमानी pthread_t से थ्रेड आईडी कैसे प्राप्त करूं?
- 29. सिंक सेवा संपर्क आईडी से पता पुस्तिका संपर्क आईडी प्राप्त करने का कोई तरीका है?
- 30. अस्थिर महंगा है?
मैंने यूनिक्स (एस) को ऐसा ही देखा है (लेकिन जीएस के साथ, यह महत्वपूर्ण नहीं है)। तो आपका जवाब कई प्लेटफार्मों के लिए सही है। यह बहुत स्सता है। – boiler96