ट्रेसिंग (सॉफ्टवेयर)

From Vigyanwiki

सॉफ्टवेयर इंजीनियरिंग में, ट्रेसिंग में प्रोग्राम के क्रियान्वयन के बारे में जानकारी रिकॉर्ड करने के लिए लॉगिंग का एक विशेष उपयोग सम्मिलित होता है। यह जानकारी विशिष्ट रूप से प्रोग्रामर द्वारा दोषमार्जन उद्देश्यों के लिए उपयोग की जाती है, और इसके अतिरिक्त, ड्राफ़्ट लॉग में सम्मिलित जानकारी के प्रकार और विवरण के आधार पर, अभ्यस्त प्रणाली व्यवस्थापकों या तकनीकी सहायता स्टाफ़ द्वारा और सॉफ़्टवेयर जांच साधनो द्वारा सामान्य समस्याओं का निदान करने के लिए उपयोग किया जाता है। सॉफ़्टवेयर।[1] ट्रेसिंग एक क्रॉस-कटिंग फर्म है।

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

यह आलेख मुख्य रूप से दोषमार्जन या नैदानिक ​​उद्देश्यों के लिए ट्रेसिंग से संबंधित है।

स्थिति लॉगिंग बनाम ट्रेसिंग

स्थिति लॉगिंग और सॉफ़्टवेयर ट्रेसिंग के बीच स्पष्ट अंतर करने में कठिनाइयाँ इस तथ्य से उत्पन्न होती हैं कि कुछ समान तकनीकों का उपयोग दोनों के लिए किया जाता है, और आगे क्योंकि कई मापदंड जो दोनों के बीच अंतर करते हैं वे असतत के बजाय निरंतर हैं। निम्नलिखित तालिका में कुछ महत्वपूर्ण, लेकिन किसी भी तरह से सटीक या सार्वभौमिक भेद नहीं है, जो विकासक द्वारा प्रत्येक उद्देश्य के लिए तकनीकों का चयन करने के लिए उपयोग किया जाता है, और जो प्रत्येक क्षेत्र में नई तकनीकों के अलग-अलग विकास का मार्गदर्शन करते हैं:

Event logging Software tracing
Consumed primarily by system administrators Consumed primarily by developers
Logs "high level" information (e.g. failed installation of a program) Logs "low level" information (e.g. a thrown exception)
Must not be too "noisy" (containing many duplicate events or information that is not helpful for its intended audience) Can be noisy
A standards-based output format is often desirable, sometimes even required Few limitations on output format
Event log messages are often localized Localization is rarely a concern
Addition of new types of events, as well as new event messages, need not be agile Addition of new tracing messages must be agile


इवेंट लॉगिंग

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

क्योंकि इवेंट लॉगिंग का उपयोग उच्च-स्तरीय जानकारी (अक्सर विफलता की जानकारी) को लॉग करने के लिए किया जाता है, लॉगिंग कार्यान्वयन का प्रदर्शन अक्सर कम महत्वपूर्ण होता है।

एक विशेष चिंता, डुप्लिकेट ईवेंट को बहुत बार रिकॉर्ड होने से रोकना, इवेंट थ्रॉटलिंग के माध्यम से ध्यान रखा जाता है।

सॉफ्टवेयर ट्रेसिंग

सॉफ्टवेयर ट्रेसिंग डेवलपर्स को डिबगिंग के लिए उपयोगी जानकारी प्रदान करता है। इस जानकारी का उपयोग विकास चक्रों के दौरान और सॉफ़्टवेयर के रिलीज़ होने के बाद दोनों में किया जाता है। इवेंट लॉगिंग के विपरीत, सॉफ़्टवेयर ट्रेसिंग में आमतौर पर ईवेंट या ईवेंट कोड की श्रेणी की अवधारणा नहीं होती है। सॉफ़्टवेयर ट्रेसिंग के लिए ईवेंट कोड पर आधारित ईवेंट-लॉगिंग समाधान अनुपयुक्त होने के अन्य कारणों में सम्मिलितहैं:

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

सॉफ्टवेयर ट्रेसिंग के लिए एक अन्य महत्वपूर्ण विचार प्रदर्शन है। क्योंकि सॉफ़्टवेयर ट्रेसिंग निम्न-स्तर है, ट्रेस संदेशों की संभावित मात्रा बहुत अधिक है। प्रदर्शन संबंधी चिंताओं को दूर करने के लिए, अक्सर संकलक | कंपाइल-टाइम या रन-टाइम पर सॉफ़्टवेयर ट्रेसिंग को बंद करना संभव होना चाहिए।

अन्य विशेष चिंताएं:

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


तकनीक

सॉफ्टवेयर अनुरेखण:

इवेंट लॉगिंग:

  • syslog (विशिष्ट कार्यान्वयन के लिए आलेख देखें)

दोनों के लिए उपयुक्त:

यह भी देखें

संदर्भ

  1. "The Tracing Book". Archived from the original on 2009-02-24.
  2. Kraft, Johan; Wall, Anders; Kienle, Holger (2010), "Trace Recording for Embedded Systems: Lessons Learned from Five Industrial Projects", Runtime Verification, Springer Berlin Heidelberg, pp. 315–329, doi:10.1007/978-3-642-16612-9_24, ISBN 9783642166112
  3. "Tracepoints (Debugging with GDB)". sourceware.org. Retrieved 2022-06-24.