Fonte da imagem: pixabay.com

Como tornar o Python mais rápido que o Psyco

Ei pessoal, bem-vindo ao meu próximo blog de Python. Mas hoje não vou falar apenas sobre Python rapidamente. Portanto, antes de prosseguir, eu assumiria que você já conhece bits e * bytes sobre python. Se você é iniciante, pode procurar meus outros blogs, aprender sobre python e voltar para nós. agora estamos discutindo o tópico Python rapidamente como Psyco.

Se você é um programador experiente em outro campo e pensa que conhece o básico e agora pode ler este blog, basta fazer uma pergunta a si mesmo: você sabe o que é Psyco? Se neste momento você está pensando que esse "Psyco" significa louco, então, novamente, esse material não é para você.

Você ainda evitou muitas coisas básicas ou está apenas brincando, dizendo que é um programador experiente. Confie em mim, tentarei tornar este blog o mais fácil possível e tentarei não ofender ninguém. Mas se você não tiver o básico certo, será mais difícil entender isso.

Deixe a parte difícil de lado, você começa a pensar que coisas rápidas em python são muito mais difíceis do que qualquer outra programação que esteja absolutamente errada. Então agora sabemos o que é o que vamos, vamos?

O que é Psyco?

Então, o que é Psyco? Psyco faz python rápido. Confuso? Sim, eu também fiquei confuso quando ouvi isso pela primeira vez. Python já é rápido, então por que usar psyco? Por isso eu disse. Este blog não é para noobs e iniciantes. Se você codificou em python, execute por um bom tempo, criando um grande número de códigos e tudo, então você saberá que o python rápido precisa de codificação compacta e estrita. Com o tipo adequado de codificação, você pode torná-lo rápido e compacto.

Mas precisa de tempo e outras coisas. Você não pode criar códigos compactos e sem erros do nada. E é aí que a Psyco passa a existir. O Psyco é apenas um módulo de extensão rápida python que acelera a execução de um código de execução python. Então, você pode estar confuso agora, módulo fazendo um código Python rodar mais rápido? Sim, é exatamente isso que é. Vamos ao quadro geral.

Python e sua verdadeira natureza

Se você já codificou em Java ou C antes, pode pensar que a execução de python é extremamente rápida que as outras. Mas é aí que você está errado. Em termos de desempenho bruto, python é definitivamente mais lento que C, Java ou C #. Mas o python não é conhecido por ter velocidade no desempenho bruto.

Somente iniciantes ou noobs fazem codificação bruta. Os profissionais fazem a codificação adequada, juntamente com os recuos apropriados *. Quando você compara um código compilado adequadamente e mede o uso total de memória, o tempo inicial de inicialização, o tempo de carregamento e, nesse momento, a execução do python é extremamente rápida.

Além disso, se você estiver tentando escrever códigos para criar um servidor ou outras coisas, o Java é extremamente rápido, até mais rápido que C. Isso é possível, pois a Java Virtual Machine pode compilar código de bytes quente para código de máquina. Ao fazer isso, ele pode tirar o máximo proveito de todos os recursos da CPU.

Normalmente, esse não é o caso do C, pelo menos até você sair do ambiente de laboratório. Agora, basta assumir, distribuir uma dúzia de versões otimizadas para seus clientes - que simplesmente não funcionam.

Portanto, agora voltemos ao nosso ponto principal se o tempo de inicialização for um problema (o que não é um problema para um aplicativo de servidor, por exemplo) Java pode não ser a melhor alternativa. Também pode depender de onde estão suas áreas de códigos de acesso, por exemplo: Se elas estiverem nas bibliotecas nativas com algum código rápido do Python para simplesmente colá-las, você também poderá obter desempenho semelhante ao C com o Python rapidamente. Mas ainda assim, as linguagens de script tendem a ser mais lentas - pelo menos na maioria das vezes.

Cursos recomendados

  • Curso Online do VB.NET
  • Treinamento de certificação on-line em ciência de dados
  • Curso Profissional ISTQB
  • Programa Kali Linux

Psyco - é exatamente como isso soa

Sim, você leu certo. Agora, voltemos ao nosso tópico principal. Agora, é isso que os desenvolvedores de psyco definem em sua página da web:

“Pense no Psyco como um tipo de compilador just-in-time (JIT), um pouco como o que existe para outras linguagens, que emite código de máquina rapidamente, em vez de interpretar seu programa Python passo a passo. A diferença com a abordagem tradicional dos compiladores JIT é que a Psyco grava várias versões dos mesmos blocos (um bloco é uma função), que são otimizadas por serem especializadas em alguns tipos de variáveis ​​(um "tipo" pode significar um tipo, mas é mais geral). O resultado é que seus programas Python não modificados são executados mais rapidamente.

Acelerações de 2x a 100x, geralmente 4x, com um interpretador Python não modificado e código fonte não modificado, apenas um módulo de extensão C carregável dinamicamente. ”

Em resumo, para reformular isso em uma declaração simples, a Psyco fornecerá mais desempenho semelhante ao Java. Você obterá tempos de início mais lentos e maior uso de memória em troca de algoritmos mais rápidos.

Dito isto, há algumas coisas que devemos lembrar ao testar linguagens como Java e Python. O código nessas linguagens geralmente pode ser acelerado significativamente usando construções mais adequadas à linguagem (por exemplo, compreensões de lista em Python rapidamente, ou usando char () e String Builder para determinadas operações String em Java).

Além disso, para Python rápido, o uso do Psyco pode aumentar bastante a velocidade do programa. E ainda há a questão de usar estruturas de dados apropriadas e acompanhar a complexidade do tempo de execução do seu código.

Para entender o python psyco, é preciso ter um bom entendimento da função eval_frame () do python. O que o python psyco faz é converter a função eval_frame do python em uma unidade de avaliação composta, e o psyco usa muita memória ao fazer isso. Usar psyco é muito mais fácil do que explicá-lo.

Para simplesmente usar o psyco, faça o download do módulo psyco no sourceforge.net e mantenha esse código no início do seu primeiro código:

import psyco ; psyco.jit()

from psyco.classes import *

E então, você pode usar o seguinte comando para direcionar o comportamento da psyco com mais precisão:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Se esse material não funcionar com você no início, você precisará ser paciente. Requer tentativa e erro. Você não pode esperar diretamente que seu programa seja executado como Usain Bolt. Poupe-me o comportamento rude e sarcástico, mas é assim que funciona.

Na realidade, o python psyco não altera ou modifica seu código para torná-lo mais inteligente. Dificilmente o perfil do seu código é mais específico. Faz otimização mínima para torná-lo o mais próximo possível do código da máquina.

Embora o python psyco torne seus programas tão rápidos quanto C, existem algumas limitações e contras neles. A seguir estão alguns, listados abaixo:

  1. A Psyco agora está obsoleta, sem manutenção e morta. A substituição é PyPy
  2. A Psyco tem muitos problemas até com o python 2.7. Mas funciona muito melhor e mais rápido na v2.5
  3. O Psyco não funciona em máquinas de 64 bits. Mas é possível instalar uma máquina virtual com arquitetura i386 e fazê-la funcionar.
  4. O Mac OSX, por padrão, vem com python de 64 bits. É necessário recompilar o python x86 da fonte para fazer o Psyco funcionar.

Mesmo tendo tantos problemas, as pessoas ainda usam Psyco em vez de PyPy. Mas, novamente, se você me perguntar, o PyPy é uma alternativa incrível ao Psyco. O Psyco funciona como um compilador Just In Time, mas o PyPy possui um compilador Just in time. Onde a Psyco usa muita memória, o PyPy usa muito menos memória que a Psyco. PyPy é ainda mais compatível com frameworks como Django e Twisted.

Então, depois de tudo isso, não importa o que eu diga, é para nosso próprio uso. Pessoas com experiência em Psyco sempre sugerem que você use Psyco, enquanto pessoas que desejam velocidade precisam de PyPy. Mas deixe-me citar uma coisa.

“Embora você se sinta bem o suficiente com motocicletas como R1 ou Hayabusa, às vezes pilotar uma Harley Davidson tem seu próprio prazer”

Funciona da mesma maneira com Psyco e PyPy. Portanto, no final, sem muito barulho, o que eu sugeriria é usar os dois no início e continuar com o que você se sentir muito confortável.

Artigos recomendados:

Aqui estão alguns artigos que ajudarão você a obter mais detalhes sobre o psyco Python Fast And python, basta acessar o link.

  1. Diferenças Linux vs Ubuntu
  2. 25 perguntas e respostas mais surpreendentes da entrevista em Python
  3. Carreiras em Python
  4. Python vs Node.js
  5. Guia útil para Kali Linux vs Ubuntu
  6. Lista de compiladores Python