Lua Academy · Les

Profileren met jit.p en perf

Profileer Lua-code met jit.p, annoteer hot paths en beperk allocaties

Les 3 van 413 stappen

Profileren met jit.p en perf is een gratis Lua Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Lua Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Lua Academy bevat in totaal 4 lessen.

Waarom profileren?

Profileren laat zien welke functies de meeste CPU-tijd gebruiken. Zonder profilering worden optimalisatie-inspanningen vaak verkeerd gericht op code die niet het knelpunt vormt.

jit.p: Ingebouwde profiler van LuaJIT

LuaJIT bevat jit.p, een profiler op basis van steekproeven. Schakel deze in vanaf de opdrachtregel of in het 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()

Modi van jit.p

Modi: "s" steekproeven per functie, "l" steekproeven per regel, "i" de interpreter tegenover JIT weergeven. Uitvoer naar een bestand: "-jp=s,output.txt".

Uitvoer van jit.p lezen

De uitvoer toont een procentuele uitsplitsing van waar tijd is besteed. Richt je op de belangrijkste paar knelpunten.

-- Example output:
-- 40%  mymodule.hotLoop
-- 25%  table.sort
-- 15%  string.format
-- ...

jit.dump voor tracegegevens

require("jit.dump").on() geeft gedetailleerde IR en machinecode voor elke gecompileerde trace weer. Gebruik dit om te begrijpen wat de JIT daadwerkelijk heeft gecompileerd.

Linux perf gebruiken

Op Linux legt perf record -g luajit script.lua aanroepstacks vast op besturingssysteemniveau. Combineer dit met perf report voor een vlamgrafiek.

LuaJIT + perf-toewijzingsbestanden

LuaJIT kan perf-bestanden met symbooltoewijzingen genereren, zodat perf-rapporten namen van Lua-functies tonen in plaats van onbewerkte adressen: luajit -jp=p script.lua.

os.clock voor microbenchmarks

Meet voor snelle benchmarks de verstreken tijd met os.clock(). Herhaal de bewerking vaak om meetruis uit te middelen.

local function bench(fn, iters)
  local t0 = os.clock()
  for _ = 1, iters do fn() end
  return (os.clock() - t0) / iters
end

Knelpunten isoleren

Haal de hete functie na het profileren uit naar een minimale zelfstandige benchmark. Zo kun je eenvoudig optimalisaties uitproberen en verbeteringen controleren.

Invloed van GC op profilering

GC-pauzes verschijnen als pieken in de profilering. Meet met uitgeschakelde GC (collectgarbage("stop")) om de algoritmetijd van de GC-tijd te scheiden.

Aanbevolen werkwijzen voor profilering

  • Profileer met realistische gegevens, niet met microbenchmarks.
  • Profileer release-builds, niet debug-builds.
  • Meet vóór en na elke wijziging.
  • Optimaliseer geen code die <5% van de totale tijd inneemt.

Vraag over profilering

Wat meet de modus "s" van jit.p?

Samenvatting: profileren met jit.p en perf

Gebruik jit.p voor profilering van functies en regels op Lua-niveau, jit.dump voor inspectie van JIT-traces en Linux perf voor vlamgrafieken op besturingssysteemniveau. Meet, optimaliseer en meet opnieuw.

Gratis beginnen

Leer Lua met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
40
Lessen
159

Veelgestelde vragen

Is de les “Profileren met jit.p en perf” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Lua Academy, waaronder “Profileren met jit.p en perf”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Lua Academy bevat in totaal 4 lessen.

Wat leer ik in “Profileren met jit.p en perf”?

Profileer Lua-code met jit.p, annoteer hot paths en beperk allocaties Je oefent met Lua Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Lua Academy te beginnen?

Ervaring vooraf is niet nodig. Lua Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Profileren met jit.p en perf”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Lua Academy?

Ja. Elke les over Lua Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Overzicht van de LuaJIT-architectuur
  2. JIT-vriendelijke Lua schrijven
  3. Profileren met jit.p en perf
  4. Benchmarkpatronen
← Terug naar Lua Academy