Measuring Code Level Determinants of Software Sustainability: A Systematic Literature Review
137 अध्ययनों का यह व्यवस्थित साहित्य समीक्षा सॉफ्टवेयर स्थिरता के लिए कोड-स्तरीय निर्धारकों और मेट्रिक्स को संश्लेषित करती है, जो ऊर्जा की तुलना में कार्बन माप में एक महत्वपूर्ण अनुसंधान अंतराल को प्रकट करती है, और डेवलपर्स को हरित सॉफ्टवेयर बनाने में मदद करने के लिए एक आधारित निर्णय ढांचा और कार्रवाई योग्य दिशानिर्देश प्रस्तावित करती है।
मूल पेपर CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
जब भी कोई सॉफ़्टवेयर प्रोग्राम चलता है, चाहे वह स्मार्टफोन पर कोई ऐप हो या वैश्विक क्लाउड सेवाओं को प्रबंधित करने वाले विशाल सिस्टम, वह बिजली ग्रिड से ऊर्जा लेता है। यह खपत केवल लागत का मामला नहीं है; यह उन कार्बन उत्सर्जन में एक सीधा योगदानकर्ता है जो ग्रह को गर्म कर रहे हैं। हालांकि डेटा सेंटर, जो इन प्रणालियों को घर देते हैं, अपनी ऊर्जा मांगों के लिए जाने जाते हैं, लेकिन स्वयं सॉफ़्टवेयर—डेवलपर्स द्वारा लिखी गई कोड की पंक्तियाँ—इस बात में एक छिपा हुआ लेकिन निर्णायक भूमिका निभाती हैं कि कितनी बिजली का उपयोग किया जाएगा। ठीक वैसे ही जैसे एक कार के इंजन का डिज़ाइन उसकी ईंधन दक्षता निर्धारित करता है, कोड लिखते समय किए गए विशिष्ट निर्णय यह तय करते हैं कि एक प्रोग्राम को कार्य करने के लिए कितनी ऊर्जा की आवश्यकता होगी। कुछ विकल्प कुशल होते हैं, जबकि अन्य बिना उपयोगकर्ता को पता चले शक्ति को बर्बाद करते हैं।
वर्षों से, शोधकर्ता इस बात का अध्ययन कर रहे हैं कि सॉफ़्टवेयर को अधिक हरा-भरा (ग्रीन) कैसे बनाया जाए, लेकिन इसके प्रमाण हजारों शोध पत्रों में बिखरे हुए थे, जो अक्सर एक ही चीज़ को मापने के लिए अलग-अलग तरीकों का उपयोग करते थे। नेशनल यूनिवर्सिटी ऑफ कंप्यूटर एंड इमर्जिंग साइंसेज, पाकिस्तान के शोधकर्ताओं द्वारा प्रकाशित एक नया व्यवस्थित समीक्षा (सिस्टमैटिक रिव्यू), इस खंडित ज्ञान को एक साथ लाता है। 137 सहकर्मी-समीक्षित (पियर-रिव्यूड) अध्ययनों का विश्लेषण करके, जो 2015 के अंत से 2026 की शुरुआत के बीच प्रकाशित हुए थे, टीम ने एक स्पष्ट मानचित्र तैयार किया कि कौन से कोडिंग निर्णय स्थिरता के लिए सबसे अधिक मायने रखते हैं। उन्होंने पाया कि हालांकि यह क्षेत्र तेजी से बढ़ा है, लेकिन यह मुख्य रूप से ऊर्जा खपत को मापने पर केंद्रित रहा है, जिससे कार्बन उत्सर्जन को मापने में एक महत्वपूर्ण अंतर पैदा हो गया है, भले ही नियम अब कार्बन अकाउंटिंग की मांग करने लगे हैं।
शोधकर्ताओं ने मौजूदा साहित्य को एक संरचित प्रणाली में छाँटकर शुरुआत की। उन्होंने सूचना के दो मुख्य श्रेणियों की पहचान की: डेवलपर द्वारा किए जाने वाले विशिष्ट निर्णय, जिन्हें 'डिटरमिनेंट्स' (निर्धारक) कहा जाता है, और वे तरीके जिनसे उन निर्णयों को मापा जाता है, जिन्हें 'इम्पैक्ट मेट्रिक्स' (प्रभाव मीट्रिक) कहा जाता है। डिटरमिनेंट्स व्यापक स्तर से लेकर सूक्ष्म स्तर तक होते हैं, जैसे कि प्रोग्रामिंग भाषा का चुनाव या समस्या को हल करने के लिए उपयोग किया जाने वाला एल्गोरिदम, से लेकर डेटा को मेमोरी में कैसे स्टोर किया जाता है या लूप्स (loops) को कैसे लिखा जाता है, जैसे बारीक विवरण। मेट्रिक्स वे उपकरण हैं जिनका उपयोग इन विकल्पों के प्रभाव को देखने के लिए किया जाता है, जो मुख्य रूप से यह मापते हैं कि कितनी ऊर्जा उपयोग होती है या किसी कार्य में कितना समय लगता है। टीम ने इन निष्कर्षों को इस तरह व्यवस्थित किया कि यह दिखाया जा सके कि विकास प्रक्रिया के दौरान ये निर्णय कब लिए जाते हैं और उनके प्रभाव वास्तव में कब देखे जाते हैं।
सबसे चौंकाने वाले निष्कर्षों में से एक यह है कि उच्च-स्तरीय निर्णयों का प्रभाव कितना व्यापक हो सकता है। यह समीक्षा पुष्टि करती है कि प्रोग्रामिंग भाषा का चुनाव एक प्रमुख कारक है। अध्ययन लगातार दिखाते हैं कि कंपाइल्ड (compiled) भाषाएं, जो सीधे मशीन कोड में अनुवादित होती हैं, इंटरप्रिटेड (interpreted) भाषाओं की तुलना में बीस गुना अधिक ऊर्जा-कुशल हो सकती हैं, जिन्हें चलते समय पंक्ति-दर-पंक्ति प्रोसेस किया जाता है। इसी तरह, एल्गोरिदम का चुनाव—वह गणितीय विधि जिसका पालन एक प्रोग्राम करता है—ऊर्जा उपयोग में भारी अंतर पैदा कर सकता है। एक अधिक कुशल एल्गोरिदम ऊर्जा की खपत को कई गुना कम कर सकता है, एक ऐसा अंतर जो इतना बड़ा है कि कोड में कोई भी मामूली बदलाव इसकी बराबरी कभी नहीं कर सकता। इसके बावजूद, समीक्षा नोट करती है कि ये उच्च-प्रभाव वाले विषय साहित्य में सबसे अधिक अध्ययन किए जाने वाले विषय नहीं हैं; शोधकर्ताओं ने विशिष्ट कोडिंग शैलियों या मामूली अनुकूलन (optimizations) जैसे कम प्रभावशाली विवरणों की जांच करने में अधिक समय बिताया है।
अध्ययन ने यह भी मानचित्रित किया कि ये निर्णय कब होते हैं। अधिकांश शोध कार्यान्वयन चरण (implementation phase) पर केंद्रित है, जब कोड पहली बार लिखा जाता है, और रनटाइम चरण (runtime phase) पर, जब सॉफ़्टवेयर वास्तव में निष्पादित हो रहा होता है। हालांकि, परीक्षण चरण (testing phase) में एक महत्वपूर्ण कमी पाई गई। बहुत कम अध्ययन इस बात की जांच करते हैं कि सॉफ़्टवेयर के परीक्षण की प्रक्रिया, या स्वयं टेस्ट कोड, ऊर्जा की बर्बादी में कैसे योगदान देता है। यह एक बड़ी चूक है, क्योंकि आधुनिक सॉफ़्टवेयर विकास अत्यधिक स्वचालित परीक्षण प्रणालियों पर निर्भर करता है जो दिन में हजारों बार चलते हैं, जो संभावित रूप से अंतिम उत्पाद की तुलना में अधिक ऊर्जा की खपत कर सकते हैं। शोधकर्ता इस बात पर प्रकाश डालते हैं कि यह क्षेत्र अभी भी काफी हद तक अनछुआ है, जो भविष्य के सुधार के लिए एक बड़े अवसर का सुझाव देता है।
शायद सबसे तात्कालिक निष्कर्ष वह है जो मापा जा रहा है। समीक्षा में पाया गया कि 137 में से 131 अध्ययनों ने ऊर्जा की खपत को मापा, जिसमें अक्सर बिजली के उपयोग को जूल तक ट्रैक करने के लिए विशेष हार्डवेयर काउंटर का उपयोग किया गया। इसके विपरीत, केवल तीन अध्ययनों ने सीधे कार्बन उत्सर्जन को मापा। यह असंतुलन समस्यात्मक है क्योंकि वैश्विक नियम अब ऊर्जा को ट्रैक करने के बजाय कार्बन को ट्रैक करने की ओर बढ़ रहे हैं। शोधकर्ता बताते हैं कि इस अंतर को आसानी से भरा जा सकता है। चूंकि कार्बन उत्सर्जन की गणना ऊर्जा उपयोग को स्थानीय पावर ग्रिड की कार्बन तीव्रता से गुणा करके की जाती है, इसलिए ऊर्जा के प्रचुर डेटा को कार्बन डेटा में बदला जा सकता है यदि शोधकर्ता केवल बिजली के स्रोत के संदर्भ को रिकॉर्ड करें। वर्तमान में, क्षेत्र के पास ऊर्जा के आंकड़े तो हैं लेकिन आधुनिक पर्यावरणीय रिपोर्टिंग के लिए आवश्यक कार्बन संदर्भ की कमी है।
डेवलपर्स को इन निष्कर्षों को लागू करने में मदद करने के लिए, टीम ने एक व्यावहारिक निर्णय ढांचा (डिसीजन फ्रेमवर्क) बनाया है। यह स्थिरता संबंधी समस्याओं के समाधान के लिए एक मार्गदर्शिका के रूप में कार्य करता है। यदि कोई सॉफ़्टवेयर सेवा चलाने में बहुत अधिक लागत ले रही है, तो ढांचा सुझाव देता है कि मामूली कोड सुधारों की चिंता करने से पहले प्रोग्रामिंग भाषा और एल्गोरिदम को देखें। यदि कोई मोबाइल ऐप बैटरी खत्म कर रहा है, तो यह उन विशिष्ट कोडिंग पैटर्न की ओर संकेत करता है जो बिजली बर्बाद करने के लिए जाने जाते हैं। दिशानिर्देश इस बात पर जोर देते हैं कि डेवलपर्स को केवल इस आधार पर अनुमान लगाने के बजाय कि कोई प्रोग्राम कितनी तेजी से चलता है, ऊर्जा को सीधे मापना चाहिए, क्योंकि एक तेज़ प्रोग्राम हमेशा अधिक कुशल नहीं होता है। वे सॉफ़्टवेयर फीचर्स के लिए स्पष्ट 'एनर्जी बजट' निर्धारित करने की भी सिफारिश करते हैं, ऊर्जा की बर्बादी को सॉफ़्टवेयर बग की तरह ही गंभीरता से लेना चाहिए।
समीक्षा निष्कर्ष निकालती है कि टिकाऊ सॉफ़्टवेयर इंजीनियरिंग (सस्टेनेबल सॉफ़्टवेयर इंजीनियरिंग) का क्षेत्र परिपक्व हो रहा है, जिसमें एक बढ़ता हुआ अंतरराष्ट्रीय समुदाय और स्थापित विधियां हैं। हालांकि, यह ध्यान केंद्रित करने में बदलाव का आह्वान करती है। शोधकर्ताओं से आग्रह किया जाता है कि वे परीक्षण चरण का अधिक गहराई से अध्ययन करें, भाषा के चुनाव जैसे उच्च-प्रभाव वाले निर्णयों पर निष्कर्षों को दोहराएं, और ऊर्जा डेटा के साथ कार्बन उत्सर्जन की रिपोर्ट करना शुरू करें। उद्योग पेशेवरों के लिए संदेश स्पष्ट है: सॉफ़्टवेयर के पर्यावरणीय पदचिह्न (फुटप्रिंट) को कम करने का सबसे प्रभावी तरीका मामूली समायोजन के माध्यम से नहीं, बल्कि विकास प्रक्रिया की शुरुआत में किए गए मौलिक निर्णयों के माध्यम से है। कुशल भाषाओं, एल्गोरिदम और डेटा संरचनाओं को चुनकर, और परिणामों को सटीक रूप से मापकर, डेवलपर्स डिजिटल दुनिया की ऊर्जा और कार्बन लागत को काफी कम कर सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।