sábado, 11 de janeiro de 2020
O Python pode ser executado até ~ 27% mais rápido no Fedora 32 com uma otimização
Confira !!
Os scripts Python podem estar notavelmente mais rápidos após o lançamento do Fedora 32 em abril.
Originalmente para o Fedora 32, os desenvolvedores procuravam vincular estaticamente o Python para obter um melhor desempenho . Mas, devido ao feedback, eles reduziram esse escopo e, por suas otimizações do Python no Fedora 32, o limitaram a criar o Python com o sinalizador do compilador -fno-semântico-interposiçã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."Os
desenvolvedores do Fedora descobriram que construir o Python com a fno-semantic-interposition pode render até 27% mais desempenho, dependendo da carga de trabalho. Casos de teste como nbody, scimark, django, ray-tracing e muitos outros geraram melhorias de desempenho na faixa de 20 ~ 27% com muito mais melhorias na faixa de 5 a 20%, conforme medido pelo PyPerformance.
A única desvantagem menor dessa alteração de nenhuma interposição semântica é que LD_PRELOAD não pode ser usado com Python para substituir símbolos, mas isso não deveria ser '
Isso afeta muitos.Mais detalhes sobre essa mudança concluída no Fedora Wiki .
Fonte
Até a próxima !!
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário