हॉट स्पॉट (कंप्यूटर प्रोग्रामिंग): Difference between revisions

From Vigyanwiki
No edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Other uses|Hotspot (disambiguation)#Computing}}
{{Other uses|हॉटस्पॉट (बहुविकल्पी)#कंप्यूटिंग}}
[[कंप्यूटर विज्ञान]] में '''हॉट स्पॉट''' को सामान्यतः [[कंप्यूटर प्रोग्राम]] के क्षेत्र के रूप में परिभाषित किया जाता है जहां निष्पादित निर्देशों का उच्च अनुपात होता है या जहां प्रोग्राम के निष्पादन के समय सबसे अधिक समय व्यतीत होता है (आवश्यक नहीं कि वही वर्णन हो क्योंकि कुछ निर्देश दूसरों की तुलना में तीव्र होते हैं)।
[[कंप्यूटर विज्ञान|कंप्यूटर साइंस]] में '''हॉट स्पॉट''' को सामान्यतः [[कंप्यूटर प्रोग्राम]] के क्षेत्र के रूप में परिभाषित किया जाता है जहां एक्सेक्यूटेड इंस्ट्रक्शन का हाई प्रोपोरशन होता है या जहां प्रोग्राम के एक्सेक्यूशन के टाइम सबसे अधिक टाइम स्पेंट होता है (आवश्यक नहीं कि वही वर्णन हो क्योंकि कुछ इंस्ट्रक्शन दूसरों की अपेक्षा फ़ास्ट होते हैं)।


यदि किसी प्रोग्राम को बेतरतीब ढंग से बाधित किया जाता है, तो [[ कार्यक्रम गणक ]] (निष्पादित किए जाने वाले अगले निर्देश के लिए [[ सूचक (कंप्यूटर प्रोग्रामिंग) ]]) में प्रायः निश्चित सीमा के अंदर निर्देश का ज्ञात शामिल होता है, जो संभवतः उस कोड को इंगित करता है जिसे अनुकूलन की आवश्यकता होती है या यहां तक ​​कि 'टाइट' [[ CPU ]] [[लूप (कंप्यूटिंग)]] के अस्तित्व का संकेत भी मिलता है। यह सरल तकनीक अत्यधिक उपयोग किए जाने वाले निर्देशों का ज्ञात लगा सकती है, चूँकि अधिक परिष्कृत उपाय, जैसे निर्देश सेट सिमुलेटर या [[प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग)]], इसे अधिक त्रुटिहीन और लगातार प्राप्त करते हैं।
यदि किसी प्रोग्राम को रैंडम टाइप से इंटेरपटेड किया जाता है, तो [[ कार्यक्रम गणक |प्रोग्राम काउंटर]] (एक्सेक्यूटेड किए जाने वाले अगले इंस्ट्रक्शन के लिए [[ सूचक (कंप्यूटर प्रोग्रामिंग) |पॉइंटर (कंप्यूटर प्रोग्रामिंग)]] ) में प्रायः निश्चित लिमिट के अंदर इंस्ट्रक्शन का एड्रेस सम्मिलित होता है, जो संभवतः उस कोड को इंडीकेट करता है जिसे ऑप्टिमाइजेशन की आवश्यकता होती है या यहां तक ​​कि 'टाइट' [[ CPU |सीपीयू]] [[लूप (कंप्यूटिंग)]] के प्रजेंस का सिग्नल भी मिलता है। यह सरल टेक्निक अत्यधिक उपयोग किए जाने वाले इंस्ट्रक्शन का ज्ञात कर सकती है, चूँकि अधिक सोफिस्टिकेटेड मेथड, जैसे इंस्ट्रक्शन सेट सिमुलेटर या [[प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग)]], इसे अधिक करेक्ट और कोंस्टीटेंटली से प्राप्त करते हैं।


==हॉट स्पॉट का ज्ञात लगाने का इतिहास==
==हॉट स्पॉट को ज्ञात करने का इतिहास==
कंप्यूटर वैज्ञानिक [[डोनाल्ड नुथ]] ने 1996 में डॉ. डॉब्स जर्नल के लिए साक्षात्कार में जम्प ट्रेस के साथ अपनी पहली मुठभेड़ का वर्णन करते हुए कहा:
कंप्यूटर साइंटिस्ट [[डोनाल्ड नुथ]] ने 1996 में डॉ. डॉब्स जर्नल के लिए साक्षात्कार में जम्प ट्रेस के साथ अपनी प्रथम आकस्मिक भेंट का वर्णन करते हुए कहा:
<ब्लॉककोट>60 के दशक में, किसी ने 'जंप ट्रेस' की अवधारणा का आविष्कार किया था। यह प्रोग्राम के [[मशीन कोड]] को बदलने का तरीका था ताकि यह नियंत्रण बनाए रखने के लिए अगली शाखा या जंप निर्देश को परिवर्तित कर, ताकि आप समय में प्रत्येक निर्देश की व्याख्या करने के बजाय प्रोग्राम को अधिक तीव्र गति से निष्पादित कर सकें और फ़ाइल में रिकॉर्ड कर सकें जहां प्रोग्राम अनुक्रमिकता से भिन्न हो गया है। इस फ़ाइल को संसाधित करके आप यह ज्ञात लगा सकते हैं कि प्रोग्राम अपना अधिकांश समय कहाँ व्यतीत कर रहा है। इसलिए पहले दिन जब हमारे पास यह सॉफ़्टवेयर चल रहा था, हमने इसे अपने [[फोरट्रान]] [[ संकलक ]] पर लागू किया, जो मुझे लगता है कि उन दिनों [[नियंत्रण डेटा निगम]] द्वारा आपूर्ति किया गया था। हमने पाया कि यह अपना 87 प्रतिशत समय [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]] पढ़ने में व्यतीत कर रहा था! इसका कारण यह था कि यह कोड सिस्टम से दूसरे कोड सिस्टम में अनुवाद कर रहा था।<ref>[http://www.ntg.nl/maps/16/14.pdf Jack Woehr: An interview with Donald Knuth, April 1996.]</ref></ब्लॉककोट>
 
60 के दशक में, किसी ने 'जंप ट्रेस' की अवधारणा का आविष्कार किया था। यह प्रोग्राम के [[मशीन कोड]] को परिवर्तित करने का उपाय था जिससे यह नियंत्रण बनाए रखने के लिए ब्रांच या जंप इंस्ट्रक्शन को परिवर्तित करे, जिससे आप टाइम में प्रत्येक इंस्ट्रक्शन की व्याख्या करने के अतिरिक्त प्रोग्राम को अधिक तीव्र गति से एक्सेक्यूटेड कर सकें और फ़ाइल में रिकॉर्ड कर सकें जहां प्रोग्राम अनुक्रमिकता से पृथक हो गया है। इस फ़ाइल को संसाधित करके आप यह ज्ञात कर सकते हैं कि प्रोग्राम अपना अधिकांश टाइम कहाँ व्यतीत कर रहा है। इसलिए प्रथम दिन जब हमारे पास यह सॉफ़्टवेयर चल रहा था, हमने इसे अपने [[फोरट्रान]] [[ संकलक |संकलक]] पर प्रारम्भ किया, जो मुझे लगता है कि उन दिनों [[नियंत्रण डेटा निगम]] द्वारा आपूर्ति किया गया था। हमने पाया कि यह अपना 87 प्रतिशत टाइम [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]] पढ़ने में व्यतीत कर रहा था I इसका कारण यह था कि यह कोड सिस्टम से दूसरे कोड सिस्टम में अनुवाद कर रहा था।<ref>[http://www.ntg.nl/maps/16/14.pdf Jack Woehr: An interview with Donald Knuth, April 1996.]</ref>


===पुनरावृत्ति===
===पुनरावृत्ति===
ऊपर दिया गया उदाहरण यह स्पष्ट करता है कि प्रभावी हॉट स्पॉट का ज्ञात लगाना प्रायः पुनरावृत्ति प्रक्रिया है और शायद इसे सदैव किया जाना चाहिए (केवल यह स्वीकार करने के बजाय कि कोई प्रोग्राम उचित प्रदर्शन कर रहा है)। सभी बाहरी प्रसंस्करण को समाप्त करने के पश्चात् (उदाहरण के लिए सभी एम्बेडेड टिप्पणियों को हटाकर), नया रनटाइम विश्लेषण अनुवाद में वास्तविक हॉट स्पॉट का अधिक त्रुटिहीन रूप से ज्ञात लगाएगा। यदि किसी भी हॉट स्पॉट का ज्ञात नहीं लगाया गया होता, तो संभवतः कई मशीनों पर कई वर्षों तक प्रोग्राम ने आवश्यकता से कहीं अधिक संसाधनों का उपभोग किया होता, बिना किसी को भी इसके बारे में पूरी तरह से ज्ञात चले।
ऊपर दिया गया उदाहरण यह स्पष्ट करता है कि प्रभावी हॉट स्पॉट को ज्ञात करना प्रायः पुनरावृत्ति प्रक्रिया है और इसे सदैव किया जाना चाहिए (केवल यह स्वीकार करने के अतिरिक्त कि प्रोग्राम उचित प्रदर्शन कर रहा है)। सभी बाह्य प्रसंस्करण को समाप्त करने के पश्चात् (उदाहरण के लिए सभी एम्बेडेड टिप्पणियों को विस्थापित करके), नया रनटाइम विश्लेषण अनुवाद में वास्तविक हॉट स्पॉट का अधिक त्रुटिहीन रूप से ज्ञात करेगा। यदि किसी भी हॉट स्पॉट का ज्ञात नहीं किया गया होता, तो संभवतः अनेक मशीनों पर अनेक वर्षों तक प्रोग्राम ने आवश्यकता से कहीं अधिक संसाधनों का उपभोग किया होता, बिना किसी को भी इसके सम्बन्ध में पूर्ण रूप से ज्ञात चले ही।


==हॉट स्पॉट डिटेक्टर के रूप में अनुदेश सेट सिमुलेशन==
==हॉट स्पॉट डिटेक्टर के रूप में अनुदेश सेट सिमुलेशन==
निर्देश सेट सिम्युलेटर का उपयोग किसी विशेष निर्देश के निष्पादित होने पर हर बार गणना करने के लिए किया जा सकता है और पश्चात् में या तो ऑन-स्क्रीन डिस्प्ले, मुद्रित प्रोग्राम सूची (गणना और/या कुल निर्देश पथ लंबाई की प्रतिशतता के साथ) या भिन्न रिपोर्ट तैयार की जा सकती है, जो त्रुटिहीन रूप से दिखाती है कि सबसे अधिक संख्या में निर्देश कहां हुए। यह केवल हॉट स्पॉट का सापेक्ष दृश्य प्रदान करता है (निर्देश चरण परिप्रेक्ष्य से) क्योंकि अधिकांश निर्देशों में कई मशीनों पर भिन्न-भिन्न समय होता है। फिर भी यह अत्यधिक उपयोग किए जाने वाले कोड का माप प्रदान करता है और एल्गोरिथ्म को ट्यून करते समय अपने आप में अधिक उपयोगी होता है।
इंस्ट्रक्शन सेट सिम्युलेटर का उपयोग किसी विशेष इंस्ट्रक्शन के एक्सेक्यूटेड होने पर प्रत्येक कैलकुलेशन करने के लिए किया जा सकता है और पश्चात् में या तो ऑन-स्क्रीन डिस्प्ले, प्रिंटेड प्रोग्राम लिस्टिंग (कैलकुलेशन और कुल इंस्ट्रक्शन पाथ लंबाई की प्रतिशतता के साथ) या भिन्न रिपोर्ट बनाई जा सकती है, जो त्रुटिहीन रूप से प्रदर्शित करती है कि सबसे अधिक संख्या में इंस्ट्रक्शन कहां हुए है। यह केवल हॉट स्पॉट का सापेक्ष दृश्य प्रदान करता है (इंस्ट्रक्शन स्टेप पर्सपेक्टिव से) क्योंकि अधिकांश इंस्ट्रक्शन में अनेक मशीनों पर भिन्न-भिन्न टाइम होता है। तत्पश्चात भी यह अत्यधिक उपयोग किए जाने वाले कोड का माप प्रदान करता है और एल्गोरिथ्म को ट्यून करते टाइम अपने आप में अधिक उपयोगी होता है।


==यह भी देखें==
==यह भी देखें==
Line 25: Line 26:
[[Category: Machine Translated Page]]
[[Category: Machine Translated Page]]
[[Category:Created On 25/07/2023]]
[[Category:Created On 25/07/2023]]
[[Category:Vigyan Ready]]

Latest revision as of 22:37, 2 February 2024

कंप्यूटर साइंस में हॉट स्पॉट को सामान्यतः कंप्यूटर प्रोग्राम के क्षेत्र के रूप में परिभाषित किया जाता है जहां एक्सेक्यूटेड इंस्ट्रक्शन का हाई प्रोपोरशन होता है या जहां प्रोग्राम के एक्सेक्यूशन के टाइम सबसे अधिक टाइम स्पेंट होता है (आवश्यक नहीं कि वही वर्णन हो क्योंकि कुछ इंस्ट्रक्शन दूसरों की अपेक्षा फ़ास्ट होते हैं)।

यदि किसी प्रोग्राम को रैंडम टाइप से इंटेरपटेड किया जाता है, तो प्रोग्राम काउंटर (एक्सेक्यूटेड किए जाने वाले अगले इंस्ट्रक्शन के लिए पॉइंटर (कंप्यूटर प्रोग्रामिंग) ) में प्रायः निश्चित लिमिट के अंदर इंस्ट्रक्शन का एड्रेस सम्मिलित होता है, जो संभवतः उस कोड को इंडीकेट करता है जिसे ऑप्टिमाइजेशन की आवश्यकता होती है या यहां तक ​​कि 'टाइट' सीपीयू लूप (कंप्यूटिंग) के प्रजेंस का सिग्नल भी मिलता है। यह सरल टेक्निक अत्यधिक उपयोग किए जाने वाले इंस्ट्रक्शन का ज्ञात कर सकती है, चूँकि अधिक सोफिस्टिकेटेड मेथड, जैसे इंस्ट्रक्शन सेट सिमुलेटर या प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग), इसे अधिक करेक्ट और कोंस्टीटेंटली से प्राप्त करते हैं।

हॉट स्पॉट को ज्ञात करने का इतिहास

कंप्यूटर साइंटिस्ट डोनाल्ड नुथ ने 1996 में डॉ. डॉब्स जर्नल के लिए साक्षात्कार में जम्प ट्रेस के साथ अपनी प्रथम आकस्मिक भेंट का वर्णन करते हुए कहा:

60 के दशक में, किसी ने 'जंप ट्रेस' की अवधारणा का आविष्कार किया था। यह प्रोग्राम के मशीन कोड को परिवर्तित करने का उपाय था जिससे यह नियंत्रण बनाए रखने के लिए ब्रांच या जंप इंस्ट्रक्शन को परिवर्तित करे, जिससे आप टाइम में प्रत्येक इंस्ट्रक्शन की व्याख्या करने के अतिरिक्त प्रोग्राम को अधिक तीव्र गति से एक्सेक्यूटेड कर सकें और फ़ाइल में रिकॉर्ड कर सकें जहां प्रोग्राम अनुक्रमिकता से पृथक हो गया है। इस फ़ाइल को संसाधित करके आप यह ज्ञात कर सकते हैं कि प्रोग्राम अपना अधिकांश टाइम कहाँ व्यतीत कर रहा है। इसलिए प्रथम दिन जब हमारे पास यह सॉफ़्टवेयर चल रहा था, हमने इसे अपने फोरट्रान संकलक पर प्रारम्भ किया, जो मुझे लगता है कि उन दिनों नियंत्रण डेटा निगम द्वारा आपूर्ति किया गया था। हमने पाया कि यह अपना 87 प्रतिशत टाइम टिप्पणी (कंप्यूटर प्रोग्रामिंग) पढ़ने में व्यतीत कर रहा था I इसका कारण यह था कि यह कोड सिस्टम से दूसरे कोड सिस्टम में अनुवाद कर रहा था।[1]

पुनरावृत्ति

ऊपर दिया गया उदाहरण यह स्पष्ट करता है कि प्रभावी हॉट स्पॉट को ज्ञात करना प्रायः पुनरावृत्ति प्रक्रिया है और इसे सदैव किया जाना चाहिए (केवल यह स्वीकार करने के अतिरिक्त कि प्रोग्राम उचित प्रदर्शन कर रहा है)। सभी बाह्य प्रसंस्करण को समाप्त करने के पश्चात् (उदाहरण के लिए सभी एम्बेडेड टिप्पणियों को विस्थापित करके), नया रनटाइम विश्लेषण अनुवाद में वास्तविक हॉट स्पॉट का अधिक त्रुटिहीन रूप से ज्ञात करेगा। यदि किसी भी हॉट स्पॉट का ज्ञात नहीं किया गया होता, तो संभवतः अनेक मशीनों पर अनेक वर्षों तक प्रोग्राम ने आवश्यकता से कहीं अधिक संसाधनों का उपभोग किया होता, बिना किसी को भी इसके सम्बन्ध में पूर्ण रूप से ज्ञात चले ही।

हॉट स्पॉट डिटेक्टर के रूप में अनुदेश सेट सिमुलेशन

इंस्ट्रक्शन सेट सिम्युलेटर का उपयोग किसी विशेष इंस्ट्रक्शन के एक्सेक्यूटेड होने पर प्रत्येक कैलकुलेशन करने के लिए किया जा सकता है और पश्चात् में या तो ऑन-स्क्रीन डिस्प्ले, प्रिंटेड प्रोग्राम लिस्टिंग (कैलकुलेशन और कुल इंस्ट्रक्शन पाथ लंबाई की प्रतिशतता के साथ) या भिन्न रिपोर्ट बनाई जा सकती है, जो त्रुटिहीन रूप से प्रदर्शित करती है कि सबसे अधिक संख्या में इंस्ट्रक्शन कहां हुए है। यह केवल हॉट स्पॉट का सापेक्ष दृश्य प्रदान करता है (इंस्ट्रक्शन स्टेप पर्सपेक्टिव से) क्योंकि अधिकांश इंस्ट्रक्शन में अनेक मशीनों पर भिन्न-भिन्न टाइम होता है। तत्पश्चात भी यह अत्यधिक उपयोग किए जाने वाले कोड का माप प्रदान करता है और एल्गोरिथ्म को ट्यून करते टाइम अपने आप में अधिक उपयोगी होता है।

यह भी देखें

  • प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग)

संदर्भ