0Pricing
Lua Academy · Ders

jit.p ve perf ile Profil Oluşturma

Lua kodunun profilini jit.p ile çıkarın, yoğun yolları açıklayın ve ayırmaları azaltın.

jit.p ve perf ile Profil Oluşturma, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.

Neden Profil Oluşturmalısınız?

Profil oluşturma, en çok CPU zamanı tüketen işlevleri belirler. Profil oluşturulmadığında eniyileştirme çabaları çoğu zaman darboğaz olmayan koda yönelir.

jit.p: LuaJIT Yerleşik Profil Oluşturucusu

LuaJIT, örneklemeli bir profil oluşturucu olan jit.p bileşenini içerir. Bunu komut satırından veya betiğin içinden etkinleştirebilirsiniz.

-- Command line:
luajit -jp=s script.lua
-- Or inside script:
require("jit.p").start("s")  -- sample at function level
-- ... code ...
require("jit.p").stop()

jit.p Kipleri

Kipler: "s" işleve göre örnekler, "l" satıra göre örnekler, "i" yorumlayıcı ile JIT arasındaki farkı gösterir. Çıktıyı dosyaya yazmak için: "-jp=s,output.txt".

jit.p Çıktısını Okuma

Çıktı, zamanın nerede harcandığını yüzdesel olarak gösterir. En üstteki birkaç sıcak noktaya odaklanın.

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

İz Ayrıntıları için jit.dump

require("jit.dump").on(), derlenen her iz için ayrıntılı IR ve makine kodu çıktısı verir. JIT'in gerçekte neyi derlediğini anlamak için kullanın.

Linux perf Kullanımı

Linux'ta perf record -g luajit script.lua, OS düzeyinde çağrı yığınlarını yakalar. Bir alev grafiği oluşturmak için bunu perf report ile birleştirin.

LuaJIT + perf Eşleme Dosyaları

LuaJIT, perf sembol eşleme dosyaları oluşturabilir; böylece perf raporlarında ham adresler yerine Lua işlev adları gösterilir: luajit -jp=p script.lua.

Mikro Karşılaştırmalar için os.clock

Hızlı karşılaştırmalar için geçen süreyi os.clock() ile ölçün. Ölçüm gürültüsünün etkisini azaltmak için işlemi birçok kez tekrarlayıp ortalamasını alın.

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

Sıcak Noktaları Yalıtma

Profil oluşturduktan sonra sıcak işlevi en küçük bağımsız bir karşılaştırma programına çıkarın. Bu, iyileştirmeler üzerinde yineleme yapmayı ve kazanımları doğrulamayı kolaylaştırır.

Profil Oluşturmada GC Etkisi

GC duraklamaları, profil oluşturma sırasında ani yükselmeler olarak görünür. Algoritmanın süresini GC süresinden ayırmak için GC devre dışıyken (collectgarbage("stop")) ölçüm yapın.

Profil Oluşturma için En İyi Uygulamalar

  • Mikro karşılaştırmalar yerine gerçekçi verilerle profil oluşturun.
  • Hata ayıklama derlemeleri yerine yayın derlemeleriyle profil oluşturun.
  • Her değişiklikten önce ve sonra ölçüm yapın.
  • Toplam sürenin <5%'inden azını alan kodu iyileştirmeyin.

Profil Oluşturma Sorusu

jit.p içindeki "s" kipi neyi ölçer?

Özet: jit.p ve perf ile Profil Oluşturma

Lua düzeyinde işlev/satır profili oluşturmak için jit.p, JIT izlerini incelemek için jit.dump ve OS düzeyinde alev grafikleri için Linux perf kullanın. Ölçün, iyileştirin, yeniden ölçün.

Sıkça Sorulan Sorular

“jit.p ve perf ile Profil Oluşturma” dersi ücretsiz mi?

Evet — “jit.p ve perf ile Profil Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.

“jit.p ve perf ile Profil Oluşturma” dersinde ne öğreneceğim?

Lua kodunun profilini jit.p ile çıkarın, yoğun yolları açıklayın ve ayırmaları azaltın. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Lua Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“jit.p ve perf ile Profil Oluşturma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. LuaJIT Mimarısına Genel Bakış
  2. JIT Dostu Lua Yazma
  3. jit.p ve perf ile Profil Oluşturma
  4. Karşılaştırma Örüntüleri
← Lua Academy Sayfasına Dön