Pembuatan Profil dengan jit.p dan perf
Buat profil kode Lua dengan jit.p, beri anotasi pada jalur panas, dan kurangi alokasi.
Pembuatan Profil dengan jit.p dan perf adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.
Mengapa Membuat Profil
Pembuatan profil mengidentifikasi fungsi yang menggunakan waktu CPU paling banyak. Tanpa pembuatan profil, upaya optimisasi sering salah sasaran dan ditujukan pada kode yang bukan merupakan hambatan performa.
Profiler Bawaan LuaJIT: jit.p
LuaJIT menyertakan jit.p, yaitu profiler berbasis pengambilan sampel. Aktifkan dari baris perintah atau di dalam skrip.
-- Command line:
luajit -jp=s script.lua
-- Or inside script:
require("jit.p").start("s") -- sample at function level
-- ... code ...
require("jit.p").stop()Mode jit.p
Mode: "s" mengambil sampel berdasarkan fungsi, "l" berdasarkan baris, dan "i" menampilkan interpreter dibandingkan JIT. Keluarkan ke file: "-jp=s,output.txt".
Membaca Keluaran jit.p
Keluaran menampilkan perincian persentase tentang lokasi waktu dihabiskan. Fokuslah pada beberapa titik panas teratas.
-- Example output:
-- 40% mymodule.hotLoop
-- 25% table.sort
-- 15% string.format
-- ...jit.dump untuk Detail Pelacakan
require("jit.dump").on() menghasilkan IR dan kode mesin terperinci untuk setiap pelacakan yang dikompilasi. Gunakan ini untuk memahami apa yang sebenarnya dikompilasi oleh JIT.
Menggunakan Linux perf
Di Linux, perf record -g luajit script.lua menangkap tumpukan pemanggilan pada tingkat OS. Gabungkan dengan perf report untuk membuat grafik api.
File Peta LuaJIT + perf
LuaJIT dapat menghasilkan file peta simbol perf agar laporan perf menampilkan nama fungsi Lua, bukan alamat mentah: luajit -jp=p script.lua.
os.clock untuk Tolok Ukur Mikro
Untuk tolok ukur cepat, ukurlah waktu nyata dengan os.clock(). Ulangi operasi berkali-kali untuk merata-ratakan derau pengukuran.
local function bench(fn, iters)
local t0 = os.clock()
for _ = 1, iters do fn() end
return (os.clock() - t0) / iters
endPisahkan Titik Panas
Setelah membuat profil, ekstrak fungsi panas ke dalam tolok ukur mandiri yang minimal. Dengan begitu, Anda dapat mencoba pengoptimalan secara berulang dan memverifikasi peningkatan dengan mudah.
Dampak GC pada Pembuatan Profil
Jeda GC muncul sebagai lonjakan dalam pembuatan profil. Lakukan pengukuran dengan GC dinonaktifkan (collectgarbage("stop")) untuk memisahkan waktu algoritme dari waktu GC.
Praktik Terbaik Pembuatan Profil
- Buat profil dengan data yang realistis, bukan tolok ukur mikro.
- Buat profil pada build rilis, bukan build debug.
- Lakukan pengukuran sebelum dan sesudah setiap perubahan.
- Jangan optimalkan kode yang menggunakan <5% dari total waktu.
Pertanyaan tentang Pembuatan Profil
Apa yang diukur oleh mode "s" pada jit.p?
Ringkasan: Pembuatan Profil dengan jit.p dan perf
Gunakan jit.p untuk membuat profil fungsi/baris pada tingkat Lua, jit.dump untuk memeriksa pelacakan JIT, dan Linux perf untuk grafik api pada tingkat OS. Ukur, optimalkan, lalu ukur lagi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pembuatan Profil dengan jit.p dan perf” gratis?
Ya — teks lengkap “Pembuatan Profil dengan jit.p dan perf” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pembuatan Profil dengan jit.p dan perf”?
Buat profil kode Lua dengan jit.p, beri anotasi pada jalur panas, dan kurangi alokasi. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Lua Academy?
Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Pembuatan Profil dengan jit.p dan perf” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?
Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Gambaran Umum Arsitektur LuaJIT
- Menulis Lua yang Ramah JIT
- Pembuatan Profil dengan jit.p dan perf
- Pola Benchmark