0Pricing
Lua Academy · Aula

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
end

Isole 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

  1. Visão geral da arquitetura do LuaJIT
  2. Escrevendo Lua compatível com JIT
  3. Criação de perfis com jit.p e perf
  4. Padrões de avaliação de desempenho
← Voltar para Lua Academy