Skip to content

Análises realizadas para verificar a performance de operações utilizando diferentes ferramentas

Notifications You must be signed in to change notification settings

ghhernandes/dataperformance-tests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

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.

About

Análises realizadas para verificar a performance de operações utilizando diferentes ferramentas

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published