Após um hiato de três anos no desenvolvimento, o lançamento do projeto Pyston 2 foi publicado, o que eu desenvolvipara uma implementação de alto desempenho da linguagem Python utilizando os desenvolvimentos do projeto LLVM.
A implementação destaca-se pelo uso de modernas tecnologias de compilação JIT e visa alcançar alto desempenho semelhante a linguagens de sistema tradicionais como C ++.
O código de versões anteriores por Pyston foi distribuído sob a licença Apache, mas o código do Pyston 2 ainda não está disponível e apenas compilações prontas para uso foram lançadas para o Ubuntu 18.04 e 20.04 (um arquivo com o código está disponível para download, mas há apenas um esboço com informações de que o projeto ainda está fechado) .
Publicar o código faz parte dos planos dos desenvolvedoresmas isso será feito após a formação do modelo de negócios ter sido concluída da nova empresa e decidiu-se continuar desenvolvendo a Pyston sem o apoio financeiro do Dropbox.
Sobre o Python 2
Ao contrário das versões anteriores, Pyston 2 é marcado como estável e não como uma versão de teste. Muito trabalho foi feito para otimizar o desempenho e o Pyston 2 agora é mais rápido do que o Python 3.8 original em cerca de 20% ao passar no conjunto de testes python-macrobenchmarks.
Os ganhos de desempenho mais notáveis são vistos em cargas de trabalho de aplicativos da web inerentes. Em testes separados, como chaos.py e nbody.py, o Pyston 2 supera o Python 3.8 por um fator de 2. O custo de usar JIT é um pequeno aumento no consumo de memória.
Estamos muito animados para lançar o Pyston v2, uma implementação mais rápida e altamente compatível da linguagem de programação Python. A versão 2 é 20% mais rápida do que o Python 3.8 padrão em nossos macrobenchmarks. Mais importante, provavelmente é mais rápido em seu código. O Pyston v2 pode reduzir os custos do servidor, reduzir as latências do usuário e melhorar a produtividade do desenvolvedor.
O Pyston v2 é fácil de implementar, então se você está procurando um melhor desempenho do Python, recomendamos que você reserve cinco minutos e experimente o Pyston. Fazer isso é uma das maneiras mais fáceis de acelerar seu projeto.
Em termos de compatibilidade com Python nativo, o projeto Pyston é apresentado como a implementação alternativa mais compatível para CPython, já que Pyston é um fork da base de código principal do CPython.
Pistão suporta todas as funções CPython, incluindo a API C para desenvolver extensões C. Pyston foi originalmente desenvolvido pelo Dropbox, que em 2017 decidiu descontinuar o desenvolvimento interno. No início de 2020, os principais desenvolvedores da Pyston fundaram sua empresa, reinventaram completamente o projeto e começaram a trabalhar na Pyston em tempo integral.
Detalhes técnicos sobre o preenchimento do Pyston 2 ainda não foram fornecidos, apenas DynASM JIT, cache em linha e otimizações gerais de CPython são mencionados. A versão anterior do Pyston usava um método JIT por vez, semelhante ao JIT nos motores JavaScript modernos.
No JIT, o código Python foi analisado e traduzido para uma representação intermediária LLVM (IR, representação intermediária). Além disso, a representação IR foi processada no otimizador LLVM e passada para o mecanismo LLVM JIT para execução, que converteu a representação IR em código de máquina.
Para obter informações sobre os tipos de variáveis para programas na linguagem Python dinâmica, foi utilizada a técnica de predição probabilística de tipos de objetos, seguida do esclarecimento da escolha correta do tipo durante a execução.
Portanto, Pyston constantemente variava a execução entre dois ramos: o rápido, quando as taxas previstas são confirmadas, e o lento, que é usado em caso de incompatibilidade de tipo.
O trabalho pode ser feito no modo multithread, permitindo a execução paralela de vários threads de código na linguagem Python e livre do bloqueio do interpretador global (GIL).
Finalmente se você quiser saber mais sobre isso, você pode verificar os detalhes no link a seguir