Skip to content

Latest commit

 

History

History
25 lines (13 loc) · 1.99 KB

README.md

File metadata and controls

25 lines (13 loc) · 1.99 KB

dataperformance-tests

Python é uma linguagem muito utilizada para processamento de dados por ser efetiva e de rápido desenvolvimento, porém possui um grande problema: python puro é lento. Por ser uma linguagem interpretada e de alto nível, cada linha de código deve ser traduzida para binário cada vez que é executada, e para um desenvolvimento mais rápido o gerenciamento de memória é abstraído.

Para comprovar isso, usaremos duas ferramentas:

Numpy (https://numpy.org) é um pacote para computação científica utilizando Python com sua maior parte escrita na linguagem C, e pode ser utilizada para trabalhar com vetores N-dimensionais com alto desempenho.

Numba (http://numba.pydata.org) é responsável por traduzir código Python em código de máquina otimizada utilizando o compilador LLVM (https://llvm.org), possibilitando atingir a velocidade da linguagem C ou Fortran em operações numéricas.

Métodos utilizados para o teste:

No código acima possuímos três métodos que possuem o mesmo resultado final, porém um utiliza python puro, o outro Numba e posteriormente é utilizado o NumPy, respectivamente.

Na imagem abaixo conseguimos ver que após realizar 64 milhões de operações, o tempo de processamento de um código em Python puro foi 6 vezes maior em comparação com o Numba.

Em outra análise, podemos constatar que o aumento do tempo de execução do Python puro conforme o número de operações aumenta, é muito maior comparado as demais ferramentas:

Como esperado, o código Python puro foi mais lento nesse caso. Porém vale lembrar que existe casos onde ele pode ser mais rápido para poucas operações, não necessitando de ferramentas adicionais.