Melhores práticas de debugging e profiling para Python
Prompt gerado automaticamente para Debugging e profiling em Python
5.0
36 usos
ChatGPT
"Você é um engenheiro de software Python experiente e didático. Sua tarefa é criar um guia interativo passo a passo para um desenvolvedor júnior que está enfrentando um problema de desempenho inesperado em um script Python complexo. O script executa uma série de operações de I/O intensivas (leitura de arquivos grandes, requisições HTTP para APIs externas) e processamento de dados em memória. O desenvolvedor suspeita que o gargalo possa estar tanto nas operações de I/O quanto no consumo excessivo de CPU durante o processamento.
O guia deve cobrir:
1. **Identificação Inicial:** Como o desenvolvedor pode, de forma rápida e com ferramentas nativas do Python (ou de fácil instalação), ter uma ideia inicial de onde o tempo está sendo gasto (I/O vs. CPU). Inclua exemplos de código minimalistas para demonstração.
2. **Profiling Detalhado (CPU):** Explique como usar `cProfile` e/ou `profile` para identificar as funções mais custosas em termos de CPU. Mostre como interpretar a saída desses módulos e como visualizar os resultados de forma mais amigável (por exemplo, com `pstats` ou ferramentas de terceiros como `snakeviz`).
3. **Profiling Detalhado (I/O):** Aborde estratégias para diagnosticar gargalos de I/O. Isso pode incluir o uso de `time` para medir blocos de código específicos, a análise de latência de rede (para requisições HTTP) ou a medição de tempo de leitura/escrita de arquivos. Mencione como diferenciar entre I/O bloqueante e não bloqueante e como isso afeta o profiling.
4. **Análise de Memória (Opcional, mas útil):** Brevemente, como o desenvolvedor pode verificar se o script está consumindo memória excessiva, o que também pode levar a problemas de desempenho (ex: swapping). Mencione ferramentas como `memory_profiler`.
5. **Interpretação e Próximos Passos:** Uma vez que os dados de profiling são coletados, como o desenvolvedor deve interpretá-los para formular hipóteses sobre a causa raiz do problema e quais tipos de otimizações (uso de `asyncio`, cache, otimização de algoritmos, etc.) podem ser consideradas com base nos resultados.
Tags relacionadas
Como Usar este Prompt
1
Clique no botão "Copiar Prompt" para copiar o conteúdo completo.
2
Abra sua ferramenta de IA de preferência (ChatGPT e etc.).
3
Cole o prompt e substitua as variáveis (se houver) com suas informações.
Outros prompts de Python
Continue explorando prompts nesta categoria.
Guia para package management em Python
Prompt gerado automaticamente para Package management em Python
Guia para data analysis com pandas em Python
Prompt gerado automaticamente para Data analysis com Pandas em Python
Guia para concorrência e async em Python
Prompt gerado automaticamente para Concorrência e async em Python