Python é realmente uma linguagem que se destacou nos últimos anos em termos de popularidade, elegância e funcionalidade. Pesquisas mostram que 8 em 10 departamentos de Ciência da Computação nos EUA agora ensinam seus cursos introdutórios com Python, superando Java. Departamentos de CS mais bem classificados no MIT e UC Berkeley trocaram seus cursos introdutórios para Python. E os três principais fornecedores de MOOC (edX, Coursera e Udacity) oferecem cursos introdutórios de programação em Python. Sem mencionar o fato de que Python é conhecido por ter uma sintaxe fácil que torna o aprendizado muito mais tolerável, e ele escala facilmente – especialmente em ambientes baseados em nuvem.
Por mais poderoso que Python seja, dá sempre para melhorar. Se você deseja tornar o seu código Python ainda mais rápido e eficiente, então fique atento. Listamos abaixo seis formas de melhorar o desempenho do seu ambiente Python. Leia!
1. Use alguns dos aplicativos aceleradores do Python
Python desenvolveu uma reputação como uma linguagem sólida e de alto desempenho . Muito tem sido feito nos últimos anos para que ele chegasse a esse ponto. O projeto PyPy visa a acelerar o Python como um todo (e está fazendo um ótimo trabalho). E Numba é outra ferramenta que pode oferecer ganhos incríveis por meio da implementação de funções de alto desempenho escritas diretamente em Python.
2. Usando generators e ordenação com chaves
Generators são úteis na otimização da memória, pois permitem que você crie uma função que retorna um item de cada vez, em vez de todos os itens de uma só vez. Um bom exemplo é quando você está criando uma grande lista de números e os adicionando ao mesmo tempo.
Além disso, quando você está ordenando itens em uma linha, certifique-se de usar chaves e o método padrão sort() sempre que possível. No exemplo abaixo, note que em cada caso a lista é ordenada de acordo com o índice que você seleciona como parte do argumento chave. Essa abordagem funciona com strings e com números.
import operator somelist = [(1, 5, 8), (6, 2, 4), (9, 7, 5)] somelist.sort(key=operator.itemgetter(0)) somelist #Output = [(1, 5, 8), (6, 2, 4), (9, 7, 5)] somelist.sort(key=operator.itemgetter(1)) somelist #Output = [(6, 2, 4), (1, 5, 8), (9, 7, 5)] somelist.sort(key=operator.itemgetter(2)) somelist #Output = [(6, 2, 4), (9, 7, 5), (1, 5, 8)],
3. Utilize as versões mais recentes do Python
Python é mantido através de uma comunidade de desenvolvedores que está empenhada em manter o software atual e robusto. Cada versão nova da linguagem vai, tecnicamente, ser mais rápida e mais otimizada do que a anterior, por isso é recomendável planejar sua jogada. Basta ter a certeza de que suas bibliotecas preferidas sejam compatíveis com as versões mais recentes.
4. Evite loops indesejados
O consenso é de que muito looping em qualquer linguagem de programação não é uma coisa boa, o que coloca pressão desnecessária sobre o seu servidor. Alguns ajustes simples como armazenar o comprimento de um array em uma variável diferente, em vez de fazê-lo ler o comprimento em cada iteração do loop, pode ser muito útil para otimizar seu código e assegurar que as coisas irão funcionar de forma muito mais eficiente. Além disso, tente refatorar seu código para usar interseções e uniões. Por exemplo, em vez deste:
for x in a: for y in b: if x == y: yield (x,y)
Tente este:
return set(a) & set(b)
5. Experimente múltiplas abordagens de codificação
É típico empregar as mesmas técnicas de codificação geral em todo o seu aplicativo. Mas por que não tentar uma experiência para ver se uma técnica é melhor ou mais ideal do que a outra? Isso ajudará a mantê-lo afiado e inovador em suas abordagens de codificação, não importa a linguagem em que você estiver trabalhando. Ao aprender a “pensar fora da caixa”, você vai aplicar, de forma criativa, novas técnicas de codificação para obter resultados mais rápidos com os seus aplicativos.
6. Mantenha o código Python pequeno e leve
Muitas vezes, em programação, o mais simples é mais rápido. Atualmente, o desempenho é crítico e é especialmente importante manter o seu código Python o mais compacto possível para reduzir a latência e acelerar as coisas. Um artigo fornece algumas perguntas de organização que valem a pena serem feitas na fase de desenvolvimento: “Será que realmente precisamos deste módulo?”, “Por que estamos usando este framework?”, “Será que vale a sobrecarga?”,” Será que podemos fazer isso de uma forma mais simples?”.
***
Ralph Eck faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://www.monitis.com/blog/2015/05/25/7-ways-to-improve-your-python-performance/