No mês passado, o Python 3.11 Beta 1 foi lançado como sua primeira visualização desta grande atualização da linguagem de programação Python. Além de novos recursos de linguagem e outras melhorias, o desempenho do Python 3.11 está fantástico, com um aumento de desempenho muito bom em relação às versões anteriores do Python 3.x.
O Python 3.11 tem desenvolvido suporte para grupos de tarefas em assíncrono, erro refinado locais em tracebacks, o self-type para retornar uma instância de sua classe, TypeVarTuple para genéricos variáveis e vários outros recursos.
Além das mudanças que afetam a própria linguagem Python, o Python 3.11 vem realizando trabalhos de desempenho desde o”Faster Cython Project”para acelerar a implementação de referência. O Python 3.11 é 10~60% mais rápido que o Python 3.10 de acordo com os números oficiais e uma aceleração de 1,22x com seu conjunto de benchmark padrão.
O Python Docs aborda algumas das melhorias significativas de desempenho feitas para esta próxima versão.
A versão formal do Python 3.11.0 não é t esperado até outubro, enquanto vários betas virão até julho e, em seguida, pelo menos dois candidatos a lançamento nos meses seguintes antes do início de outubro.
Recentemente, em uma caixa de desenvolvedor AMD Ryzen 9 5950X, realizei recentemente alguns benchmarks analisando o desempenho do Python 3.11 Beta 1 do mês passado (a versão de desenvolvimento mais recente no momento do teste). O desempenho do Python 3.11 Beta foi comparado a versões anteriores, incluindo Python 3.10.4, Python 3.9.13 e Python 3.8.13. Todas essas versões do Python foram criadas a partir do código-fonte na mesma configuração de versão todas as vezes nesse mesmo sistema. Uma variedade de diferentes benchmarks Python foram então realizados para ver como o Python 3.11 está comparado com as versões anteriores do Python.
Primeiro foi o benchmark Python PyBench muito simples… Mesmo neste benchmark relativamente simples e onde o Python 3.8 a 3.10 teve aproximadamente o mesmo desempenho, a mudança para o Python 3.11 Beta mostrou uma aceleração significativa: o Python 3.11 Beta levou aproximadamente 84% do tempo da versão anterior para concluir esse conjunto de testes com script.
Passando para os benchmarks comuns do PyPerformance Python, as acelerações do Python 3.11 Beta pareciam fantásticas!
Os ganhos de desempenho falados com o Python 3.11 realmente parecem muito reais e atraentes.
Enquanto Python 3.8 para Python 3.10 o desempenho foi praticamente o mesmo sem grandes melhorias de desempenho, as acelerações com Python 3.11 parecem enormes para esta implementação de referência e semelhante ao nível de otimizações visto no lado PHP de PHP5 para PHP7.
Python 3.11 será um lançamento muito empolgante com ganhos de desempenho significativos. Embora ele não chegue tão estável até outubro, pode não parecer pronto para uso em algumas das distribuições Linux até os lançamentos H1’2023.
Voltarei com ainda mais Os benchmarks do Python 3.11 estão mais próximos do lançamento, mas esses números de desempenho já são extremamente atraentes depois de não ver muito em termos de otimizações de desempenho significativas nas versões recentes do Python 3.x. Também será interessante ver se o Clear Linux da Intel pode aumentar ainda mais o desempenho do Python.
Ao calcular a média geométrica de todos os benchmarks do Python que realizei para este artigo no AMD Ryzen 9 5950X, o Python 3.11 Beta foi cerca de 41% mais rápido no geral do que a versão estável atual do Python 3.10.4 ou 45% em relação à antiga série Python 3.8. Todos os dados de benchmark individuais podem ser encontrados esta página de resultados do OpenBenchmarking.org.