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

From Vigyanwiki
(Created page with "{{Other uses|Hotspot (disambiguation)#Computing}} {{More citations needed|date=May 2009}} कंप्यूटर विज्ञान में एक हॉट स्...")
 
No edit summary
Line 1: Line 1:
{{Other uses|Hotspot (disambiguation)#Computing}}
{{Other uses|Hotspot (disambiguation)#Computing}}
{{More citations needed|date=May 2009}}
[[कंप्यूटर विज्ञान]] में हॉट स्पॉट को आमतौर पर [[कंप्यूटर प्रोग्राम]] के क्षेत्र के रूप में परिभाषित किया जाता है जहां निष्पादित निर्देशों का उच्च अनुपात होता है या जहां प्रोग्राम के निष्पादन के दौरान सबसे अधिक समय व्यतीत होता है (जरूरी नहीं कि वही बात हो क्योंकि कुछ निर्देश दूसरों की तुलना में तेज़ होते हैं)।
[[कंप्यूटर विज्ञान]] में एक हॉट स्पॉट को आमतौर पर [[कंप्यूटर प्रोग्राम]] के एक क्षेत्र के रूप में परिभाषित किया जाता है जहां निष्पादित निर्देशों का एक उच्च अनुपात होता है या जहां प्रोग्राम के निष्पादन के दौरान सबसे अधिक समय व्यतीत होता है (जरूरी नहीं कि वही बात हो क्योंकि कुछ निर्देश दूसरों की तुलना में तेज़ होते हैं)।


यदि किसी प्रोग्राम को बेतरतीब ढंग से बाधित किया जाता है, तो [[ कार्यक्रम गणक ]] (निष्पादित किए जाने वाले अगले निर्देश के लिए [[ सूचक (कंप्यूटर प्रोग्रामिंग) ]]) में अक्सर एक निश्चित सीमा के भीतर एक निर्देश का पता शामिल होता है, जो संभवतः उस कोड को इंगित करता है जिसे अनुकूलन की आवश्यकता होती है या यहां तक ​​कि एक 'टाइट' [[ 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 प्रतिशत समय [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]] पढ़ने में व्यतीत कर रहा था! इसका कारण यह था कि यह कोड सिस्टम से दूसरे कोड सिस्टम में अनुवाद कर रहा था।<ref>[http://www.ntg.nl/maps/16/14.pdf Jack Woehr: An interview with Donald Knuth, April 1996.]</ref></ब्लॉककोट>


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


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


==यह भी देखें==
==यह भी देखें==

Revision as of 23:43, 4 August 2023

कंप्यूटर विज्ञान में हॉट स्पॉट को आमतौर पर कंप्यूटर प्रोग्राम के क्षेत्र के रूप में परिभाषित किया जाता है जहां निष्पादित निर्देशों का उच्च अनुपात होता है या जहां प्रोग्राम के निष्पादन के दौरान सबसे अधिक समय व्यतीत होता है (जरूरी नहीं कि वही बात हो क्योंकि कुछ निर्देश दूसरों की तुलना में तेज़ होते हैं)।

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

हॉट स्पॉट का पता लगाने का इतिहास

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

पुनरावृत्ति

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

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

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

यह भी देखें

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

संदर्भ