Criação de perfis com jit.p e perf
Analise o desempenho do código Lua com jit.p, anote caminhos quentes e reduza alocações.
Criação de perfis com jit.p e perf é uma aula grátis de Lua Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Lua Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Lua Academy inclui 4 aulas no total.
Por que fazer criação de perfil?
A criação de perfil identifica quais funções consomem mais tempo de CPU. Sem ela, os esforços de otimização muitas vezes são direcionados por engano a códigos que não são o gargalo.
Profiler integrado do LuaJIT: jit.p
O LuaJIT inclui jit.p, um profiler por amostragem. Ative-o pela linha de comando ou dentro do script.
-- Command line:
luajit -jp=s script.lua
-- Or inside script:
require("jit.p").start("s") -- sample at function level
-- ... code ...
require("jit.p").stop()Modos do jit.p
Modos: "s" faz amostragem por função, "l" faz amostragem por linha e "i" mostra o interpretador em comparação com o JIT. Saída para um arquivo: "-jp=s,output.txt".
Como ler a saída do jit.p
A saída mostra uma distribuição percentual de onde o tempo foi gasto. Concentre-se nos poucos pontos críticos do topo.
-- Example output:
-- 40% mymodule.hotLoop
-- 25% table.sort
-- 15% string.format
-- ...Detalhes dos rastros com jit.dump
require("jit.dump").on() produz o IR detalhado e o código de máquina de cada rastro compilado. Use-o para entender o que o JIT realmente compilou.
Usando o Linux perf
No Linux, perf record -g luajit script.lua captura pilhas de chamadas no nível do OS. Combine-o com perf report para obter um gráfico de chamas.
Arquivos de mapa do LuaJIT + perf
O LuaJIT pode gerar arquivos de mapa de símbolos do perf, para que os relatórios do perf mostrem nomes de funções Lua em vez de endereços brutos: luajit -jp=p script.lua.
os.clock para microavaliações de desempenho
Para avaliações rápidas, meça o tempo decorrido com os.clock(). Repita a operação muitas vezes para calcular a média do ruído das medições.
local function bench(fn, iters)
local t0 = os.clock()
for _ = 1, iters do fn() end
return (os.clock() - t0) / iters
endIsole os pontos críticos
Depois de criar o perfil, extraia a função crítica para uma avaliação mínima e independente. Isso facilita iterar sobre as otimizações e verificar as melhorias.
Impacto do GC na criação de perfis
As pausas do GC aparecem como picos no perfil. Faça a medição com o GC desativado (collectgarbage("stop")) para separar o tempo do algoritmo do tempo do GC.
Práticas recomendadas para criação de perfis
- Crie o perfil com dados realistas, não com microavaliações.
- Crie o perfil de versões de lançamento, não de versões de depuração.
- Meça antes e depois de cada alteração.
- Não otimize código que ocupa <5% do tempo total.
Pergunta sobre criação de perfis
O que o modo "s" de jit.p mede?
Recapitulação: criação de perfis com jit.p e perf
Use jit.p para criar perfis de funções e linhas no nível do Lua, jit.dump para inspecionar rastros do JIT e o perf do Linux para gráficos de chamas no nível do OS. Meça, otimize e meça novamente.
Perguntas Frequentes
A aula “Criação de perfis com jit.p e perf” é grátis?
Sim — o texto completo de “Criação de perfis com jit.p e perf” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Lua Academy, atualize para CoddyKit PRO. O curso de Lua Academy inclui 4 aulas no total.
O que vou aprender em “Criação de perfis com jit.p e perf”?
Analise o desempenho do código Lua com jit.p, anote caminhos quentes e reduza alocações. Você pratica Lua Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Lua Academy?
Nenhuma experiência prévia é necessária. Lua Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Criação de perfis com jit.p e perf”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Lua Academy?
Sim. Cada aula de Lua Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Visão geral da arquitetura do LuaJIT
- Escrevendo Lua compatível com JIT
- Criação de perfis com jit.p e perf
- Padrões de avaliação de desempenho