- Um profiler de CPU, GPU e memória de alto desempenho para Python que realiza várias tarefas que outros profilers Python não fazem ou não conseguem fazer
- Executa muito mais rápido e, ao mesmo tempo, fornece informações muito mais detalhadas, além de ser o primeiro profiler a integrar sugestões de otimização baseadas em IA
- Oferece CLI e GUI baseada na web
- Rápido e preciso
- Rápido: usa amostragem em vez de depender de instrumentação ou dos recursos de tracing do Python. O overhead normalmente não passa de 10~20% e muitas vezes fica abaixo disso
- Preciso: os testes de precisão mostraram que o Scalene é um dos profilers mais precisos e mede corretamente o tempo gasto
- Faz profiling em nível de linha e por função, apontando as funções e linhas de código específicas responsáveis pelo tempo de execução do programa
- Profiling de CPU
- Separa e mede o tempo gasto em código Python e código nativo (incluindo bibliotecas), permitindo que desenvolvedores foquem no código que realmente podem otimizar
- Destaca em vermelho os hotspots que consomem uma parte significativa do tempo de CPU ou das alocações de memória
- Separa o tempo de sistema para facilitar a identificação de gargalos de I/O
- Profiling de GPU
- Reporta o tempo de GPU apenas em sistemas baseados em NVIDIA
- Profiling de memória
- Faz profiling de uso de memória e identifica linhas específicas de código que causam aumento de memória por meio de um alocador de memória especial
- Exibe separadamente a proporção de consumo de memória entre código Python e código nativo
- Gera perfis de memória por linha
- Identifica linhas com possibilidade de memory leak
- O profiling de volume de cópia permite encontrar facilmente cópias não intencionais que ocorrem ao cruzar a fronteira entre Python e bibliotecas (por exemplo, quando um array
numpy é convertido por engano em um array Python)
- Outros recursos
- Com a opção
--reduced-profile, é possível gerar um perfil reduzido que reporta apenas linhas que consomem mais de 1% da CPU ou fazem pelo menos 100 alocações
- Suporta o decorator
@profile, permitindo fazer profiling apenas de funções específicas
- Permite pausar e retomar o profiling de programas executados em segundo plano (iniciados com
&)
2 comentários
Parece mais leve e potencialmente mais útil do que o Nsight, então vou testar e depois deixar uma análise! Obrigado pela apresentação.
Se vocês puderem deixar um comentário, eu agradeço. Às vezes, quando posto notícias assim, fico curioso para saber quantas pessoas estão acompanhando. rsrs