Repolode
plasma-umass

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. 1

    Instale o Scalene com pip

    python3 -m pip install -U scalene
  2. 2

    Faça o profiling do seu programa

    scalene run your_prog.py
  3. 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

#python#profiling#performance-analysis#memory-profiling#cpu-profiling#gpu#async#cpu#gpu-programming#memory-allocation

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