Equipe do Fedora quer vincular estaticamente o Python para melhor desempenho

Equipe do Fedora quer vincular estaticamente o Python para melhor desempenho
fedorapython

Uma proposta surpreendentemente controversa para o Fedora 32 é passar do link dinâmico do Python 3 com a biblioteca libpython3.X.so para o link estático. A alteração pode gerar melhorias percentuais de dois dígitos nos scripts Python. No entanto, esta mudança deve ter um custo alto: um espaço maior no disco. Portanto, a equipe do Fedora quer vincular estaticamente o Python para melhor desempenho.

Tradicionalmente, o Python 3 no Fedora foi construído com uma biblioteca compartilhada libpython3.?.so e o binário final foi dinamicamente vinculado a essa biblioteca compartilhada. Essa mudança consiste em criar a biblioteca estática e vincular o binário python3 final a ela, pois fornece uma melhoria significativa de desempenho, até 27%, dependendo da carga de trabalho. A biblioteca estática não será enviada. A biblioteca compartilhada continuará a existir em um subpacote separado. Em essência, o python3 não dependerá mais do libpython.

Há uma proposta de mudança para o lançamento do Fedora 32 no início do próximo ano. Assim, a ideia é mudar para o link estático com o Python 3 e sua biblioteca. Uma melhoria de 5 a 27% foi relatada como o possível benefício para o Fedora, embora isso possa variar dependendo da atividade real do Python.

Equipe do Fedora quer vincular estaticamente o Python para melhor desempenho e outras mudanças

Equipe do Fedora quer vincular estaticamente o Python para melhor desempenho

Além de vincular estaticamente o Python 3, empregar otimizações guiadas por perfil (PGO) ou otimizações de tempo de link (LTO), são outras considerações para aumentar ainda mais o desempenho do Python 3.8 no Fedora.

Os que se opõem a essa proposta de alteração na lista de correspondência parecem ser principalmente contra a proposta com base na vinculação estática, causando ~ 3 MB de tamanho maior para o pacote.

Vamos ver como essa proposta vai evoluir à medida que o trabalho do Fedora 32 avança e o Comitê de Engenharia e Direção do Fedora avalia essa possível alteração para obter um desempenho mais rápido do Python.

Via Phoronix