Czy jest coś, co można zrobić dla jednej aplikacji ogólnego przeznaczenia, aby wpłynąć na zużycie energii przez urządzenie, na którym działa?
Nie wiem, w jaki sposób optymalizacje poszczególnych aplikacji mogą wpływać na zużycie energii w ogólny sposób. Czy ktoś może wyjaśnić, czy różne podejścia do pisania aplikacji wpływają na zużycie energii przez urządzenie, na którym działają?
To znaczy, czy pojedynczy program, który robi dokładnie to samo funkcjonalnie, napisany na różne sposoby, drastycznie wpływa na zużycie energii przez urządzenie ogólnie, a nie o tym, jak różne niepowiązane programy mogą wpływać na zużycie energii przez urządzenie.
programming-practices
optimization
multi-platform
Juan Manuel
źródło
źródło
Odpowiedzi:
Obawy dotyczące zużycia energii często mają negatywny wpływ na wydajność, dlatego należy je wyważyć. Zastosuj koszt księgowania kapitału, aby rozważyć bardziej wydajny sprzęt, a stanie się to bardzo złożonym kompromisem. (po prostu spędzasz 100 godzin, aby zaoszczędzić miliwatt / godzinę lub 10 USD za bardziej wydajny zasilacz w programach przetwarzających oprogramowanie). Jedynym sensem komercyjnym jest martwienie się o zużycie energii (spowodowane przez oprogramowanie) to farma serwerów wielkości Google, urządzenia zasilane bateryjnie, a jeśli marketing chce zaznaczyć pole Greenie Tree Hugging.
Jest zbyt skomplikowany, aby go trywializować, mówiąc „Spraw, aby algorytmy były bardziej wydajne” - to tylko pierwszy krok. Krzywa wydajności / mocy, a zwłaszcza „postrzegana wydajność” / krzywa mocy, są nieliniowe. Zależy to od tego, czy masz kontrolę i na jakim poziomie jest używany system operacyjny.
Poza tym pytanie będzie zawierało różne odpowiedzi na każdą konkretną sytuację. Na przykład kiedyś pracowałem nad systemem zasilanym bateryjnie (docelowo 18 miesięcy na ogniwie 9 V), który był bardziej energooszczędny, pracując z maksymalną szybkością zegara przez krótki czas niż spanie, jeszcze inne mikroprocesorowe podobne oprogramowanie lepiej było zaznaczyć na wolnym zegarze przez minutę, a potem śpij.
źródło
Najlepsze, co możesz zrobić, to zoptymalizować algorytmy i logikę biznesową swojej aplikacji.
Możesz także zastosować określony proces kompilacji, wielu programistów po prostu zapomina o funkcjach wbudowanych i optymalizacji w fazie kompilacji, przez większość czasu daje to niewielką przewagę pod względem wydajności, a co za tym idzie, optymalizacji zużycia energii.
źródło
Prawidłowa odpowiedź to ....
Skoncentruj się na zapewnianiu wartości swoim klientom. Utwórz rozwiązanie, które jest czyste, łatwe do zrozumienia i łatwe w utrzymaniu.
Następnie, jeśli potrzebujesz więcej „mocy”, możesz profilować swoją aplikację. Dzięki profilowaniu wskażesz wąskie gardła, które po zmianie zapewnią największe korzyści i zwiększą „efektywność”.
źródło
Chociaż prawdą jest, że jeśli chodzi o procesor, nie ma wiele do zrobienia, jednak często są to cechy urządzenia, które zużywają energię, gdy jest używane. Na PC w zasadzie nikogo to nie obchodzi, ale zdecydowanie jest prawdą, że odczyt dysku spowoduje (zakładając, że dyski inne niż SSD) wirowanie dysku twardego i ruch głowicy, co zużywa trochę energii. Na PC jest to banalne, ale na urządzeniach mobilnych może to być bardzo realny problem.
Na telefonie najbardziej oczywistym tego przykładem jest komunikacja. Wysłanie sygnału bezprzewodowego wymaga energii. Na komputerze podłączonym do zasilacza 500 WATT nie ma to znaczenia. Na telefonie tak nie jest. Aplikacja, która stale odpytuje serwer o duże ilości danych, zużywa znacznie więcej energii niż ta, która w ogóle nie korzysta z sieci.
To bardzo realny problem, wystarczy google dla „Aplikacja na Androida wyczerpała moją baterię”. Oto jedna z wielu stron mówiących programistom, jak zminimalizować zużycie energii.
Ogólnie rzecz biorąc, chcesz zoptymalizować ogólną wydajność (tj. Maksymalnie zwiększyć moc procesora), a także wykorzystanie sieci. Komunikuj się jak najmniej za pomocą jak najmniejszych wiadomości.
Jak powiedzieli inni, jest to zadanie po zakończeniu większości kodu, gdy zidentyfikujesz problem i profilujesz zużycie energii.
źródło