Lua Academy · पाठ

jit.p और perf से प्रोफ़ाइलिंग

jit.p से Lua कोड की प्रोफ़ाइल बनाएँ, हॉट पथों पर टिप्पणी करें और आवंटन घटाएँ।

पाठ 3, कुल 4 में से13 चरण

jit.p और perf से प्रोफ़ाइलिंग, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

प्रोफ़ाइल क्यों बनाएँ

प्रोफ़ाइल से पता चलता है कि कौन-से फ़ंक्शन सबसे अधिक CPU समय लेते हैं। प्रोफ़ाइल के बिना, अनुकूलन का प्रयास अक्सर ऐसे कोड पर केंद्रित हो जाता है जो वास्तविक अड़चन नहीं है।

jit.p: LuaJIT का अंतर्निहित प्रोफ़ाइलर

LuaJIT में jit.p, एक सैंपलिंग प्रोफ़ाइलर, शामिल है। इसे कमांड लाइन से या स्क्रिप्ट के अंदर सक्षम करें।

-- 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 की विधियाँ

विधियाँ: "s" फ़ंक्शन के आधार पर सैंपल लेता है, "l" लाइन के आधार पर सैंपल लेता है, "i" इंटरप्रेटर और JIT के बीच अंतर दिखाता है। फ़ाइल में आउटपुट: "-jp=s,output.txt"।

jit.p आउटपुट पढ़ना

आउटपुट यह दिखाता है कि समय का कितना प्रतिशत किस स्थान पर लगा। सबसे अधिक समय लेने वाले शुरुआती कुछ हिस्सों पर ध्यान दें।

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

ट्रेस का विवरण देखने के लिए jit.dump

require("jit.dump").on() प्रत्येक संकलित ट्रेस के लिए विस्तृत IR और मशीन कोड का आउटपुट देता है। इसका उपयोग यह समझने के लिए करें कि JIT ने वास्तव में क्या संकलित किया।

Linux perf का उपयोग

Linux पर perf record -g luajit script.lua OS स्तर पर कॉल स्टैक कैप्चर करता है। फ्लेम ग्राफ के लिए इसे perf report के साथ मिलाकर उपयोग करें।

LuaJIT + perf मैप फ़ाइलें

LuaJIT perf प्रतीक मैप फ़ाइलें बना सकता है, ताकि perf रिपोर्ट में कच्चे पतों के बजाय Lua फ़ंक्शन के नाम दिखाई दें: luajit -jp=p script.lua।

माइक्रो-बेंचमार्क के लिए os.clock

त्वरित बेंचमार्क के लिए os.clock() से बीता हुआ समय मापें। माप में आने वाले यादृच्छिक उतार-चढ़ाव का औसत निकालने के लिए ऑपरेशन को कई बार दोहराएँ।

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

अधिक समय लेने वाले हिस्सों को अलग करें

प्रोफ़ाइलिंग के बाद, अधिक समय लेने वाले फ़ंक्शन को एक न्यूनतम स्वतंत्र बेंचमार्क में निकालें। इससे अनुकूलनों पर बार-बार काम करना और सुधारों की पुष्टि करना आसान हो जाता है।

प्रोफ़ाइलिंग पर GC का प्रभाव

प्रोफ़ाइलिंग में GC के रुकने से अचानक बढ़े हुए समय के रूप में दिखाई दे सकते हैं। एल्गोरिदम के समय को GC के समय से अलग करने के लिए GC को बंद करके (collectgarbage("stop")) मापें।

प्रोफ़ाइलिंग की सर्वोत्तम विधियाँ

  • माइक्रो-बेंचमार्क के बजाय वास्तविक परिस्थितियों जैसे डेटा के साथ प्रोफ़ाइल करें।
  • डीबग बिल्ड के बजाय रिलीज़ बिल्ड को प्रोफ़ाइल करें।
  • हर बदलाव से पहले और बाद में माप लें।
  • ऐसे कोड को अनुकूलित न करें जिसमें कुल समय का <5% लगता हो।

प्रोफ़ाइलिंग संबंधी प्रश्न

jit.p की "s" विधि क्या मापती है?

पुनरावलोकन: jit.p और perf से प्रोफ़ाइलिंग

Lua स्तर पर फ़ंक्शन/लाइन की प्रोफ़ाइलिंग के लिए jit.p, JIT ट्रेस की जाँच के लिए jit.dump, और OS स्तर के फ्लेम ग्राफ के लिए Linux perf का उपयोग करें। मापें, अनुकूलित करें और फिर दोबारा मापें।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Lua सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
40
पाठ
159

अक्सर पूछे जाने वाले प्रश्न

क्या “jit.p और perf से प्रोफ़ाइलिंग” पाठ निःशुल्क है?

हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “jit.p और perf से प्रोफ़ाइलिंग” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“jit.p और perf से प्रोफ़ाइलिंग” में मैं क्या सीखूँगा?

jit.p से Lua कोड की प्रोफ़ाइल बनाएँ, हॉट पथों पर टिप्पणी करें और आवंटन घटाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Lua Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Lua Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“jit.p और perf से प्रोफ़ाइलिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Lua Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. LuaJIT आर्किटेक्चर का अवलोकन
  2. JIT-अनुकूल Lua लिखना
  3. jit.p और perf से प्रोफ़ाइलिंग
  4. बेंचमार्किंग पैटर्न
← Lua Academy पर वापस जाएँ