Profiler de amostragem de baixo overhead para Java, que captura perfis de CPU, alocações, locks e memória nativa sem viés de safepoint.
plasma-umass/scalene
Um profiler para Python que mostra o uso de CPU, GPU e memória por linha e pode gerar sugestões de otimização com IA.
- Estrelas
- 13,549
- Forks
- 446
- Issues abertas
- 154
- Último commit
- há 5 dias
O que é?
Scalene é um profiler para programas Python que mede o tempo de CPU, o tempo de GPU NVIDIA e a alocação de memória por linha e por função. Ele separa o tempo gasto em código Python daquele gasto em código nativo, como bibliotecas C/C++, e também informa o tempo de sistema para ajudar a localizar gargalos de I/O. Scalene usa amostragem em vez de tracing, mantendo o overhead baixo em comparação com profilers que instrumentam o código.
Além de medir o tempo, Scalene acompanha o crescimento da memória e o volume de cópias, sinaliza linhas com provável vazamento de memória e oferece suporte a código async, atribuindo o tempo gasto aguardando coroutines. Os resultados podem ser visualizados em uma GUI web que funciona offline, no terminal ou em um arquivo HTML independente. Também é possível executá-lo no VS Code ou no Jupyter, e ele oferece suporte ao Python 3.13t e 3.14t com free-threading.
Scalene pode enviar hotspots identificados durante a criação do perfil a provedores de IA, como OpenAI, Azure, Amazon Bedrock ou modelos locais do Ollama, para propor otimizações de código. Essas sugestões são geradas sob demanda pela GUI e exigem que você forneça suas próprias credenciais.
Recursos principais
- 01Mostra o tempo de CPU por linha, separado entre código Python, código nativo e tempo de sistema.
- 02Faz o profiling do tempo de GPU NVIDIA e da alocação de memória, incluindo o crescimento de memória por linha.
- 03Detecta possíveis vazamentos de memória e mede o volume de cópias entre Python e bibliotecas.
- 04Atribui por linha o tempo de espera em operações async, além dos níveis de concorrência.
- 05Oferece uma GUI web offline, saída no terminal e exportação para um arquivo HTML independente.
Casos de uso
- Identificar quais linhas de um script Python lento consomem mais CPU ou memória.
- Diagnosticar se uma lentidão vem do código Python, de bibliotecas nativas ou de I/O.
- Investigar vazamentos de memória ou conversões desnecessárias de numpy para listas em pipelines de dados.
- Fazer o profiling de serviços async para verificar se as esperas são serializadas ou executadas em paralelo.
Início rápido
- 1
Instale o Scalene com pip
python3 -m pip install -U scalene - 2
Faça o profiling do seu programa
scalene run your_prog.py - 3
Veja o perfil no navegador
scalene view
Antes de usar
- No momento, o profiling de GPU está limitado a sistemas baseados em NVIDIA.
- As sugestões de otimização por IA exigem suas próprias credenciais de um provedor como OpenAI, Azure ou Amazon Bedrock, ou de um modelo local do Ollama.
Em coleções
Tópicos
Perguntas frequentes
- O que é scalene?
- Um profiler para Python que mostra o uso de CPU, GPU e memória por linha e pode gerar sugestões de otimização com IA. Scalene é um profiler para programas Python que mede o tempo de CPU, o tempo de GPU NVIDIA e a alocação de memória por linha e por função. Ele separa o tempo gasto em código Python daquele gasto em código nativo, como bibliotecas C/C++, e também informa o tempo de sistema para ajudar a localizar gargalos de I/O. Scalene usa amostragem em vez de tracing, mantendo o overhead baixo em comparação com profilers que instrumentam o código.
- scalene é gratuito? Qual é a licença?
- scalene é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- scalene ainda é mantido?
- Manutenção ativa. O último commit de scalene foi em 1 de nov. de 2026.
- Para que posso usar scalene?
- Identificar quais linhas de um script Python lento consomem mais CPU ou memória. Diagnosticar se uma lentidão vem do código Python, de bibliotecas nativas ou de I/O. Investigar vazamentos de memória ou conversões desnecessárias de numpy para listas em pipelines de dados. Fazer o profiling de serviços async para verificar se as esperas são serializadas ou executadas em paralelo.
- Como instalar scalene?
- Instale o Scalene com pip: python3 -m pip install -U scalene Faça o profiling do seu programa: scalene run your_prog.py Veja o perfil no navegador: scalene view
- Onde consigo scalene?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/plasma-umass/scalene
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Plataforma Rust da NVIDIA para CUDA, com crates de runtime no host e os modelos SIMT e Tile para escrever kernels de GPU em Rust.
Profiler por amostragem para programas Python, que se conecta a processos em execução sem modificar o código nem reiniciá-los.
Ferramenta de linha de comando e web para visualizar e analisar dados de profiling no formato profile.proto.
Ferramenta gratuita para Windows que ajuda a identificar problemas de desempenho de CPU e memória, com recursos especiais para analisar código do runtime .NET.
Linguagem integrada ao Python que compila kernels numéricos com JIT para execução em CPUs e GPUs, como CUDA, Vulkan e Metal.