O que é otimização do programa?
otimização do programa é o processo de modificar um programa de computador de uma maneira que faça com que o programa seja executado mais rápido, consuma menos recursos ou geralmente funcione com um nível mais alto de eficiência. A tarefa de otimização pode ser executada automaticamente por alguns compiladores de linguagem de programação, intencionalmente usando um programa de otimização ou manualmente por programadores que passam pelo código -fonte e tentam fazer melhorias específicas. Em geral, a otimização do programa é realizada com um fim específico em mente, porque existem muito poucas otimizações gerais que podem ser feitas para um programa que, de alguma forma, não reduz o estado otimizado de outra parte do programa, o que significa que um programa geralmente pode ser otimizado para o uso de velocidade ou recurso, mas geralmente não os dois. Uma complicação que pode ocorrer com alguns tipos de otimização é que muitas linguagens de programação de alto nível fornecem um nível tão grande de abstração entre o código nativo e a linguagem do computador que a otimização pode serDifícil ou impossível de implementar em todas as plataformas em todas as situações, especialmente com idiomas interpretados que usam compilação just-in-time (JIT).
Um conceito importante na otimização do programa é a ideia de que uma otimização geralmente vem com algum tipo de preço. Um exemplo disso é que, quando uma parte do código é otimizada para ser executada mais rapidamente, o aumento da velocidade pode chegar ao preço da legibilidade do código, uso da memória, flexibilidade do programa ou vários outros custos. Isso significa que a otimização do programa deve ser um processo direcionado, com a intenção de fazer com que um aspecto de um programa opere de uma maneira melhor enquanto está disposto a sacrificar a eficiência de outros aspectos.
Diferentes tipos de otimização de programas podem ser realizados em diferentes estágios do desenvolvimento do programa. Durante o design, a ampla otimização pode ser feita, garantindo que um programa pareça executar efetivamente. Quando trabalhaG Com o código -fonte real, as otimizações podem incluir garantir que não haja comandos estranhos, chamadas repetitivas ou funções mal escritas. Na compilação, muitas otimizações são realizadas automaticamente pelo compilador e podem ser guiadas pelo uso de diferentes interruptores ou diretrizes do programador.
otimizações automáticas, como pode ocorrer com um compilador ou programa de otimização de dedicação, geralmente pode envolver truques complexos demais para serem práticos para programadores humanos. Isso pode envolver instruções em movimento em um programa para que sejam executadas fora do pedido originalmente escrito, mas de uma maneira mais eficiente para o processador. Também pode envolver a mudança intencional de recursos, como blocos de memória para que eles possam ser acessados mais rapidamente. A maioria da otimização de programas ocorre automaticamente no nível do compilador.
Uma complicação com a otimização de programas repetida ou agressiva é que, uma vez que um programa seja modificado para executar com mais eficiência, geralmente se torna mais DIFficult para modificar para outros fins, como adicionar funcionalidade ou corrigir erros. Isso pode ocorrer quando as otimizações começam a bloquear os comportamentos do programa definidos que não são facilmente alterados ou adaptados ao novo código sem exigir que todas as otimizações sejam desfeitas. Uma questão maior é que, em muitos casos, um programa otimizado se torna menos legível por humanos, porque truques e atalhos são usados em vez de apenas comandos concisos e estruturas de controle clássico. Por esses motivos, muitas vezes há um nível de otimização do programa em que é aceitável parar, mesmo que as modificações drásticas de código possam fazer um programa funcionar um pouco mais eficientemente.