O Enigma do Desembrulho da Pilha no Perf

2025-01-31
O Enigma do Desembrulho da Pilha no Perf

Perf, uma poderosa ferramenta de análise de desempenho, usa interrupções de estouro de contador PMU para capturar estados de thread para perfilhamento. No entanto, o desembrulho da pilha apresenta um desafio. Compiladores modernos omitem ponteiros de quadro por padrão, tornando o rastreamento de pilha difícil. Embora seja possível recompilar com -fno-omit-frame-pointer, é caro e pode levar a incompatibilidades de bibliotecas do sistema. DWARF oferece uma alternativa, mas sua complexidade e sobrecarga de desempenho são substanciais, levando Linus Torvalds a rejeitar seu uso no desembrulho de pilha do kernel. Portanto, o Perf emprega um compromisso: copiar apenas a parte superior da pilha para o espaço do usuário para desembrulho. Isso limita o tamanho da pilha (65.528 bytes), mas equilibra efetivamente o desempenho e a praticidade.