Python Performance: Quando Lentidão Custa Dinheiro
Seu script Python processa 1 milhão de registros. Leva 2 horas. CEO pergunta: por que é tão lento?
Problema? Você usa listas. Loop dentro de loop. Append dentro de loop. Sem vectorização.
Problema Real
usuarios = [] # Errado
for row in dados_sql:
usuarios.append(row['id']) # 1 milhão append = LENTO
# Correto
usuarios = [row['id'] for row in dados_sql] # Mais rápido
# Melhor ainda
import numpy as np
usuarios = np.array([row['id'] for row in dados_sql]) # 10x mais rápidoPandas vs Loop
Loop: 30 segundos. Pandas: 0.3 segundos. 100x mais rápido.
Por quê? Pandas usa NumPy (C por baixo), não Python puro.
Profiling
import cProfile
cProfile.run('sua_funcao_lenta()')Você descobre que 80% do tempo está em 1 lugar. Otimiza lá.
Ganho
Processamento de 2h para 20 min. Server CPU: de 80% para 8%. Economiza 5 instâncias EC2 (R$ 3k/mês).
← Back to blog