Introdução ao Tachyon, o novo profiler por amostragem do Python 3.15
(blog.changs.co.uk)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.