Existe algo que possa ser feito para um único aplicativo de uso geral que afete o consumo de energia do dispositivo em que está sendo executado?
Não estou familiarizado com como as otimizações de aplicativos individuais podem afetar o consumo de energia de uma maneira geral. Alguém pode explicar se diferentes abordagens para escrever aplicativos afetam o consumo de energia do dispositivo em que estão sendo executados?
Ou seja, um único programa, que faz exatamente a mesma coisa funcionalmente, escrito de maneiras diferentes, afeta drasticamente o consumo de energia de um dispositivo em geral, não sobre como diferentes programas não relacionados podem afetar o consumo de energia de um dispositivo.
programming-practices
optimization
multi-platform
Juan Manuel
fonte
fonte
Respostas:
As preocupações com o consumo de energia costumam prejudicar o desempenho, portanto, as duas precisam ser equilibradas. Aplique a contabilidade de custos de capital para considerar um hardware mais eficiente, e isso se torna uma troca muito complexa. (simplesmente você gasta 100 horas para economizar um miliwatt / hora ou US $ 10 para um PSU mais eficaz nos computadores que executam o software). A única vez em que faz sentido comercial se preocupar com o consumo de energia (causado por software) é um farm de servidores do tamanho do Google, dispositivos alimentados por bateria e, se o marketing quiser um sinal na caixa Tree Hugging Greenie.
É muito complexo banalizá-lo dizendo "Torne seus algoritmos mais eficientes" - esse é apenas o primeiro passo. A curva desempenho / potência e, em particular, a "performance percebida" / curva potência são não lineares. Depende se você tem controle e em que nível através do sistema operacional em uso.
Além disso, a pergunta terá respostas diferentes para cada situação específica. Por exemplo, uma vez eu trabalhei em um sistema alimentado por bateria (alvo 18 meses em uma célula de 9V) que era mais eficiente em termos de energia, funcionando na velocidade máxima do relógio por uma curta duração do que dormindo, mas outro software semelhante com micro-execução era melhor para marcar em um relógio lento por um minuto ou mais, depois durma.
fonte
A melhor coisa que você pode fazer é otimizar seus algoritmos e a lógica comercial do seu aplicativo.
Você também pode adotar um processo de compilação específico; muitos codificadores esquecem as funções e a otimização em linha em uma fase de compilação; na maioria das vezes, isso oferece uma pequena vantagem em termos de desempenho e, consequentemente, em termos de otimização do consumo de energia.
fonte
A resposta certa é ....
Concentre-se em fornecer valor aos seus clientes. Crie uma solução limpa, fácil de entender e fácil de manter.
Então, se você precisar de mais "poder", poderá criar um perfil do seu aplicativo. Com a criação de perfil, você identificará pontos de estrangulamento que, quando alterados, fornecerão o maior benefício e aumentarão a "eficácia".
fonte
Embora seja verdade que, em termos de CPU, não haja muito a ser feito, geralmente há recursos do dispositivo que consomem energia quando usados. Em um PC, quase ninguém se importa, mas é definitivamente verdade que uma leitura de disco (assumindo unidades não SSD) fará com que o disco rígido gire e a cabeça se mova, o que consumirá um pouco de energia. Em um PC, isso é trivial, mas em um dispositivo móvel, isso pode ser um problema muito real.
Em um telefone, o exemplo mais óbvio disso é a comunicação. Enviar um sinal sem fio consome energia. Em um PC, conectado a uma fonte de alimentação 500 WATT, isso é inconseqüente. Em um telefone, não é. Um aplicativo que pesquisa constantemente um servidor por grandes quantidades de dados consumirá muito mais energia do que aquele que não usa nenhuma rede.
Este é um problema muito real, basta pesquisar no Google por "O aplicativo Android esgotou minha bateria". Aqui está uma das muitas páginas que dizem aos desenvolvedores como minimizar o consumo de energia.
Em geral, você deseja otimizar o desempenho em geral (por exemplo, tornar a CPU o máximo possível) e também para o uso da rede. Comunique o mínimo possível com o menor número possível de mensagens.
Como já foi dito, essa é uma tarefa para depois que a maior parte do seu código estiver concluída, quando você identificar um problema e usar o perfil de energia.
fonte