क्या अनुप्रयोग बिजली की खपत को काफी हद तक प्रभावित कर सकते हैं?


16

क्या ऐसा कुछ भी है जो एकल सामान्य प्रयोजन के अनुप्रयोग के लिए किया जा सकता है जिससे वह चल रहे डिवाइस की बिजली की खपत को प्रभावित कर सके?

मैं इस बात से परिचित नहीं हूं कि अलग-अलग अनुप्रयोगों के अनुकूलन सामान्य तरीके से बिजली की खपत को कैसे प्रभावित कर सकते हैं, क्या कोई यह समझा सकता है कि क्या लेखन अनुप्रयोगों के विभिन्न दृष्टिकोण उस उपकरण की बिजली की खपत को प्रभावित करते हैं जिस पर वे चल रहे हैं?

अर्थात्, एक एकल कार्यक्रम, जो सटीक एक ही कार्य को कार्यात्मक रूप से करता है, जो विभिन्न तरीकों से लिखा जाता है, सामान्य रूप से किसी डिवाइस की बिजली की खपत को प्रभावित करता है, न कि इस बारे में कि कैसे अलग-अलग संयुक्त राष्ट्र के संबंधित कार्यक्रम किसी डिवाइस की बिजली की खपत को प्रभावित कर सकते हैं।


8
इसे और बेहतर प्रदर्शन करें।
क्रिस्टोफर बर्मन

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

2
क्या आप बैटरी चालित एम्बेडेड सिस्टम के बारे में बात कर रहे हैं? सामान्य तौर पर, बिजली की खपत को कम करने की कुंजी ऐसे समय की पहचान करना है जब सिस्टम को वास्तव में बहुत कुछ करना नहीं होगा, और उस समय की मात्रा को कम से कम करें जब सिस्टम का कोई भी हिस्सा तब सक्रिय होगा जब इसके लिए वास्तव में कुछ भी नहीं है करने के लिए। ज्यादातर मामलों में, यह स्पष्ट रूप से स्पष्ट सीमा होगी कि कितना प्रयास सार्थक है; यदि कोई डिवाइस आवश्यक कार्यों पर 1mAH / दिन का उपयोग करेगा, तो एक साधारण दिनचर्या जो 10uAH / दिन बर्बाद करती है वह एक जटिल के लिए बेहतर हो सकती है जो केवल 1uAH / दिन बर्बाद करती है (क्योंकि बाद में केवल ऊर्जा पर 1% की बचत होगी)।
सुपरकैट

1
मैं कुछ सामान्य सोच रहा था, विशेष रूप से संदर्भ के साथ नहीं। यह 'सिर्फ जिज्ञासा के लिए' सवाल था। लेकिन उदाहरण के लिए, क्या मोबाइल उपकरणों पर अधिकार रखने का कोई नियम है? या एम्बेडेड सिस्टम? या वेब अनुप्रयोगों के विकास पर? डिस्क एक्सेस और नेटवर्किंग या इस तरह की चीजों में देरी हो सकती है।
जुआन मैनुअल

1
मुझे संदेह है कि आप इस बिंदु को याद कर रहे हैं। यदि आप रेडियो को आधे से अधिक उपयोग करने के लिए किसी एप्लिकेशन को बदलते हैं, तो उस एप्लिकेशन रन के नीचे जाने पर आपको बिजली की खपत दिखाई देगी। एक फोन पर रेडियो एक स्थिर दर पर शक्ति नहीं खींच रहा है। यह पावर ड्रेन सीधे निर्भर करता है कि यह सॉफ्टवेयर द्वारा क्या करने के लिए कहा जा रहा है।
रोबोट

जवाबों:


7

बिजली की खपत की चिंता अक्सर प्रदर्शन में बाधा बनती है, इसलिए दोनों को संतुलित करने की आवश्यकता है। अधिक कुशल हार्डवेयर पर विचार करने के लिए पूंजी लेखांकन की लागत को लागू करें, और यह एक बहुत ही जटिल व्यापार बन जाता है। (बस आप मिलिवेट / घंटा बचाने के लिए 100 घंटे खर्च करते हैं, या सॉफ़्टवेयर चलाने वाले कॉनपॉइंट्स में अधिक प्रभावशाली PSU के लिए $ 10)। बिजली की खपत (सॉफ्टवेयर के कारण) के बारे में चिंता करने के लिए केवल एक बार यह वाणिज्यिक समझ में आता है, एक सर्वर है जिसका आकार Google चलाता है, बैटरी चालित डिवाइस है, और यदि विपणन ट्री हगिंग ग्रीन बॉक्स पर एक टिक चाहते हैं।

इसका बहुत ही जटिल है यह कहकर कि "आपको एल्गोरिदम को और अधिक पवित्र बनाएं" - केवल पहला कदम है। प्रदर्शन / पावर वक्र और विशेष रूप से "कथित प्रदर्शन" / पावर वक्र गैर रेखीय हैं। यह निर्भर करता है कि आपके पास उपयोग में ओएस के माध्यम से नियंत्रण और किस स्तर तक है।

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


यह वास्तव में सही जवाब, हार्डवेयर एक बहुत अधिक निभाता है भावात्मक सॉफ्टवेयर की तुलना में बिजली की खपत में भूमिका। एक अधिक कुशल PSU का उदाहरण डिवाइस के सभी बनाता है, और एकल अनुप्रयोगों के सूक्ष्म अनुकूलन की निगरानी करता है जिससे उन्हें महत्वहीन योगदान मिलता है।

हां, लेकिन एक प्रोग्राम डिवाइस पर हर बिट हार्डवेयर का समान रूप से उपयोग नहीं करता है। उदाहरण के लिए, एक प्रोग्राम जो कभी पीसी पर हार्ड ड्राइव का उपयोग नहीं करता है वह एक से कम बिजली का उपयोग करेगा जो हार्ड ड्राइव से लगातार पढ़ रहा है और लिख रहा है।
रोबोट

@StevenBurnap जो HD, कुछ HD ​​स्पिन और पुल जूस के आधार पर अप्रासंगिक है। सबसे महत्वपूर्ण बिजली अनुकूलन हमेशा हार्डवेयर (और उनमें माइक्रोकोड) से आएगा। ग्रीन एचडी के साथ एक ही सॉफ्टवेयर कम बिजली का उपयोग करेगा, इसलिए हार्डवेयर अभी भी अधिक अंतर करता है।

2
वह सत्य नहीं है। अपने सिस्टम में एक किल-ए-वाट संलग्न करें, और दो एप्लिकेशन चलाएं, पहला वह जो अनंत लूप में संख्याओं को जोड़ता है, और दूसरा वह जो 5 जीबी फ़ाइल को बार-बार स्कैन करता है। आपको फर्क दिखाई देगा। बिजली की खपत निश्चित रूप से एक कंप्यूटर पर बदलती है, कभी-कभी नाटकीय रूप से, यह निर्भर करता है कि यह क्या करने के लिए कहा जा रहा है।
रोबोट

यहां एक उदाहरण है जो एक पीसी की बिजली की खपत को शुद्ध रूप से दिखाता है जो सॉफ्टवेयर चल रहा है पर आधारित है: कोडिंगहोरर
को रोबोट

2

सबसे अच्छी बात जो आप कर सकते हैं वह है आपके एल्गोरिदम और आपके एप्लिकेशन के व्यावसायिक तर्क को अनुकूलित करना।

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


यह सही जवाब है। अनुकूलन ही एकमात्र तरीका है।
सुपरएम

1
यह सही उत्तर कैसे है? सीपीयू की तुलना में सिस्टम में कहीं अधिक पावर सिंक हैं।
जेम्स

1
@ आपके सॉफ़्टवेयर में केवल CPU का उपयोग होता है? और कुछ नहीं?
user827992

3
@ user827992: नहीं, यह बात है। रेडियो (जीएसएम / 3 जी / वाईफाई) और स्क्रीन जैसी चीजें सीपीयू की तुलना में कहीं अधिक बिजली की खपत करती हैं। अपने एल्गोरिदम का अनुकूलन यहाँ आपकी मदद नहीं करेगा। मैं यहाँ तक कहना चाहूँगा कि सिस्टम में जहाँ बिजली की खपत एक चिंता का विषय है, आपके कोड का अनुकूलन एक समयपूर्व अनुकूलन है।
जेम्स

1
@ user827992: हां, लेकिन ये बचत बैटरी की खपत के अन्य स्रोतों की तुलना में न्यूनतम हैं। आप अपनी पसंद के अनुसार -Offinity को ऑप्टिमाइज़ कर सकते हैं, लेकिन यदि उदाहरण के लिए, आपका कोड कहीं न कहीं आपके द्वारा मारे गए झंडे का सर्वेक्षण करता है।
जेम्स

2

सही जवाब है…।

"We should forget about small efficiencies, 
say about 97% of the time: premature 
optimization is the root of all evil"
Donald Knuth

अपने ग्राहकों को मूल्य प्रदान करने पर ध्यान दें। ऐसा समाधान बनाएं जो स्वच्छ हो, समझने में आसान हो और बनाए रखने में आसान हो।

फिर यदि आपको अधिक "शक्ति" की आवश्यकता है तो आप अपने आवेदन को प्रोफाइल कर सकते हैं। प्रोफाइलिंग के साथ आप बिंदु अड़चनों को पिन करेंगे जो कि बदल जाने पर, "प्रभावकारिता" में सबसे बड़ा लाभ और बढ़ावा देगा।


4
मैं कहूंगा कि यह सवाल का जवाब नहीं देता, क्योंकि आप कह रहे हैं "बिजली की खपत आपकी समस्या नहीं है, ग्राहकों के लिए मूल्य पर ध्यान दें"। और यह कुछ प्रबंधन मंत्र की तरह लगता है। कम बिजली की खपत के लिए ओपी के पास गंभीर औचित्य हो सकता है।
19

वैसे मैंने "बिजली की खपत" को गलत समझा। फिर भी मुझे लगता है कि उसे बिजली की खपत का एक स्तर निर्धारित करना चाहिए जो कि पहुंच जाने पर, सिस्टम के कुछ हिस्सों का विश्लेषण करके अनुकूलन किया जाना चाहिए जो बहुत अधिक बिजली खा रहे हैं। यह तनाव परीक्षणों की श्रृंखला द्वारा किया जा सकता है।
मिकाल फ्रैंक

1

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

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

यह एक बहुत ही वास्तविक मुद्दा है, बस "एंड्रॉइड एप्लिकेशन ने मेरी बैटरी को सूखा दिया"। यहाँ कई पृष्ठों में से एक है जो डेवलपर्स को बिजली की खपत को कम करने का तरीका बता रहा है।

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

जैसा कि अन्य लोगों ने कहा है, आपके अधिकांश कोड के पूरा होने के बाद यह एक कार्य है, जब आपने किसी समस्या की पहचान की है और शक्ति का उपयोग किया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.