1 pontos por darjeeling 1 시간 전 | Ainda não há comentários. | Compartilhar no WhatsApp

Exemplo de uso do profiler por amostragem Tachyon, introduzido no Python 3.15, para visualizar gargalos em multithreading e identificar armadilhas de desempenho em abstrações de OOP.

O que é o Tachyon?

Um profiler baseado em amostragem que será adicionado à biblioteca padrão do Python 3.15.
O ponto central é o suporte nativo a ambientes free-threading (sem GIL), que os profilers existentes ignoravam.

Principais características

  • Baixo overhead por usar amostragem
  • Suporte a profiling simultâneo de todas as threads (opção -a)
  • Possibilidade de conectar-se remotamente (attach) a um processo em execução
  • Suporte a vários formatos de saída, como flamegraphs
  • Reconhece async — também pode ser aplicado a programas com asyncio

Como executar

sudo -E uv run -p 3.15.0a6t python -m profiling.sampling run \  
  -a --flamegraph -o profile.html -r 20khz your_script.py  
# -a       : profiling de todas as threads além da thread principal  
# -r 20khz : 20.000 amostragens por segundo (a precisão pode ser ajustada)  
# resultado: flamegraph em HTML — a coluna vermelha é o hot path  

Caso real de uso — detecção de gargalo em free-threading

Antes da otimização — o acesso ao Grid via __getitem__ representava 75% do tempo total de execução

https://blog.changs.co.uk/images/unoptimised-bench.png

Depois da otimização — após mudar para acesso direto à tuple interna, caiu para 5,32%

https://blog.changs.co.uk/images/optimised-bench.png

Por que isso importa

  • Até agora, problemas de desempenho em free-threading só podiam ser encontrados “no instinto”
  • O Tachyon é a primeira ferramenta oficial a mostrar visualmente onde as threads estão travando
  • Isso abre caminho para que desenvolvedores Python em geral possam medir e melhorar diretamente o desempenho em free-threading

Ainda não há comentários.

Ainda não há comentários.