O desempenho será melhor (mais rápido) se eu compilar manualmente a fonte de um componente de software para a máquina real na qual ele será usado, em comparação com se a fonte foi compilada em outra plataforma, talvez para muitas arquiteturas diferentes? Eu obtive bons resultados ao compilar a fonte que baixei e me pergunto se isso ocorreu devido à compilação, em vez de baixar um binário pré-compilado, o que geralmente ocorre com atualizações de software.
binary
compilation
Niklas
fonte
fonte
Respostas:
Em muitos casos (se não na maioria), sim. Isso porque o compilador pode produzir código nativo otimizado para essa CPU e ambiente em particular. O código é mais "direcionado".
fonte
Compilar a partir de fontes oferece a vantagem de definir os sinalizadores do compilador da maneira que você deseja para sua plataforma específica. O download de um pacote que foi compilado com as mesmas configurações exatas que a sua não ofereceria nenhuma diferença, mas alterar as configurações dos padrões pode oferecer grandes melhorias.
Por exemplo, se os binários oferecidos para download foram compilados para depuração (intencionalmente ou por engano), ativar a otimização mais agressiva melhorará o desempenho em quase todas as situações. Por outro lado, se o código compilado for otimizado ao máximo, você não verá nenhuma diferença.
fonte
Isso realmente depende dos dois compiladores e sinalizadores de compilador usados. Normalmente, as configurações do compilador e sinalizador na sua máquina local são mais apropriadas para a sua máquina em particular, se você tiver as coisas definidas corretamente.
Porém, se, por exemplo, o binário pré-criado tiver sido construído com um compilador de otimização muito melhor (ou um benchmark especial projetado com sinalizadores ajustados para esse trecho de código específico e, por sorte, apropriado para o seu sistema) em comparação com o compilador no seu sistema, é possível que qualquer compilador que esteja no seu sistema possa realmente produzir um desempenho pior.
fonte