in

Python pode executar até 27% mais rápido no Fedora 32 com otimização

O resultado foi mostrado em testes.

Python pode executar até 27% mais rápido no Fedora 32 com otimização

A famosa linguagem de programação Python e o Fedora parecem ter sido feitos um para o outro. Pelo menos em relação aos scripts. Assim, eles podem estar notavelmente mais rápidos após o lançamento do Fedora 32 em abril. De acordo com os primeiros testes, o Python pode executar até 27% mais rápido no Fedora 32 com otimização.

Originalmente para o Fedora 32, os desenvolvedores procuravam vincular estaticamente o Python para obter melhor desempenho. No entanto, devido ao feedback, eles reduziram esse resultado. Então, foram muitas otimizações do Python no Fedora 32. Isto levou à criação do Python com o -fno-semantic-interposition compiler flag.

Python pode executar até 27% mais rápido no Fedora 32 com otimização

De acordo com a documentação do GCC no sinalizador de interposição semântica

Alguns formatos de objeto, como ELF, permitem a interposição de símbolos pelo vinculador dinâmico. Isso significa que, para os símbolos exportados do DSO, o compilador não pode executar propagação interprocedural, inlining e outras otimizações antecipando que a função ou variável em questão possa ser alterada.

Embora esse recurso seja útil, por exemplo, para reescrever funções de alocação de memória por uma implementação de depuração, é caro em termos de qualidade do código. Com a interposição -fno-semântica, o compilador assume que, se ocorrer interposição para funções, a função de substituição terá exatamente a mesma semântica (e efeitos colaterais). Da mesma forma, se ocorrer interposição para variáveis, o construtor da variável será o mesmo.

Interposição semântica

Python pode executar até 27% mais rápido no Fedora 32 com otimização

Os desenvolvedores do Fedora descobriram que construir o Python com interposição -fno-semântica pode obter até 27% mais desempenho, dependendo da atividade executada. Exemplos de teste como nbody, scimark, django, ray-tracing e muitos outros geraram melhorias de desempenho na faixa de 20 a 27% com muito mais performance na faixa de 5 a 20%, conforme medido pelo PyPerformance.

A única desvantagem dessa alteração de nenhuma interposição semântica é que LD_PRELOAD não pode ser usado com Python para substituir símbolos.

Mais detalhes sobre essa mudança concluída no Fedora Wiki.

Escrito por Claylson Martins

Jornalista com pós graduações em Economia, Jornalismo Digital e Radiodifusão.

GRUB Boot Loader adiciona suporte para LUKS2 Encrypted Disks

GRUB Boot Loader adiciona suporte para LUKS2 Encrypted Disks

Mesa 19.3.2 Lançado com todas as correções de Driver Intel + AMD

Mesa 19.3.2 Lançado com todas as correções de Driver Intel + AMD