TypeScript Academy · पाठ

धीमे TypeScript संकलन की प्रोफ़ाइल बनाना

बाधाएँ खोजने के लिए --extendedDiagnostics और --generateTrace का उपयोग करें

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

धीमे TypeScript संकलन की प्रोफ़ाइल बनाना, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

TypeScript धीमा क्यों हो सकता है

जटिल सशर्त प्रकार, बड़े संयुक्त प्रकारों का विस्तार और गहराई से पुनरावर्ती मैप किए गए प्रकार बड़ी परियोजनाओं में TypeScript के प्रकार-जाँचकर्ता की गति बहुत घटा सकते हैं।

// Expensive: distributive conditional on large union
type Slow = LargeUnion extends infer T ? T extends string ? T : never : never;

--extendedDiagnostics विकल्प

संकलन समय का विस्तृत विभाजन देखने के लिए tsc --extendedDiagnostics चलाएँ: पार्सिंग, बाइंडिंग, प्रकार-जाँच और आउटपुट-निर्माण चरण।

tsc --extendedDiagnostics 2>&1 | head -40
# Output:
# Files:             212
# Lines:            48320
# Check time:       8.23s  ← focus here

--generateTrace विकल्प

tsc --generateTrace ./trace Chrome DevTools के अनुकूल एक ट्रेस फ़ाइल बनाता है, जिसे आप Performance टैब में लोड करके देख सकते हैं कि कौन-से प्रकार अधिक संसाधन लेते हैं।

tsc --generateTrace ./trace-output
# Open trace-output/trace.json in Chrome DevTools > Performance

ट्रेस का विश्लेषण

ट्रेस में लंबे क्षैतिज पट्टों को देखें, जो अधिक संसाधन लेने वाले प्रकार-निर्माण दर्शाते हैं। प्रकार का नाम और स्रोत स्थान बताते हैं कि आपको किसे अनुकूलित करना है।

# Common culprits in traces:
# - Recursive mapped types with large inputs
# - Distributive conditionals over 50+ member unions
# - Deep infer chains on complex generics

--listFiles विकल्प

tsc --listFiles संकलन में शामिल प्रत्येक फ़ाइल दिखाता है। गलती से शामिल किए गए बड़े node_modules फ़ोल्डर प्रदर्शन संबंधी समस्याओं का एक सामान्य कारण हैं।

tsc --listFiles 2>&1 | grep node_modules | wc -l
# If this is large, check your include/exclude settings

फ़ाइलों का समावेश घटाना

TypeScript किन फ़ाइलों को संसाधित करता है, इसे सीमित करने के लिए tsconfig में include और exclude का उपयोग करें।

{
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist", "**/*.test.ts"]
}

त्वरित लाभ के लिए skipLibCheck

skipLibCheck: true सभी .d.ts घोषणा फ़ाइलों की प्रकार-जाँच छोड़ देता है, जिससे कई निर्भरताओं वाली परियोजनाओं में संकलन काफ़ी तेज़ हो सकता है।

{
  "compilerOptions": {
    "skipLibCheck": true
  }
}

महँगे प्रकारों को अलग करना

महँगी प्रकार-गणनाओं को नामित मध्यवर्ती प्रकारों में अलग निकालें, ताकि TypeScript हर उपयोग-स्थान पर उन्हें फिर से गणना करने के बजाय कैश कर सके।

// Slow: recomputed at each usage
type Result = ComplexUnion extends string ? ComplexUnion : never;

// Fast: cached
type FilteredUnion = ComplexUnion extends string ? ComplexUnion : never;
type Result = FilteredUnion;

transpileOnly के साथ जाँच

विकास के दौरान तेज़ पुनरावृत्ति के लिए ts-jest या esbuild को transpileOnly: true के साथ उपयोग करके प्रकार-जाँच छोड़ दें। सतत एकीकरण में अलग से पूर्ण प्रकार-जाँच चलाएँ।

// jest.config.js with ts-jest
{
  transform: {
    "^.+\.tsx?$": ["ts-jest", { diagnostics: false }]
  }
}

संपादक का प्रदर्शन

VS Code में TypeScript भाषा सर्वर का धीमापन अक्सर उन्हीं महँगे प्रकारों से जुड़ा होता है। TypeScript: Restart TS Server चलाकर देखें और भाषा सर्वर से प्राप्त TS ट्रेस की जाँच करें।

// VS Code settings.json to enable detailed TS server log:
// "typescript.tsserver.log": "verbose"

पुनरावलोकन: संकलन का प्रोफ़ाइल विश्लेषण

उच्च-स्तरीय समय-मापन के लिए --extendedDiagnostics, प्रत्येक प्रकार के विश्लेषण के लिए --generateTrace का उपयोग करें। संकलन तेज़ करने के लिए फ़ाइलों को शामिल करने की मात्रा, गहरी सशर्त संरचनाएँ और बड़े यूनियन वितरण कम करें।

त्वरित जाँच

कौन-सा फ़्लैग Chrome DevTools-संगत ट्रेस फ़ाइल बनाता है?

आपने क्या सीखा

--extendedDiagnostics और --generateTrace से TypeScript संकलन का प्रोफ़ाइल विश्लेषण करें। फ़ाइलों को शामिल करने की मात्रा सीमित करके, skipLibCheck का उपयोग करके, मध्यवर्ती प्रकारों को कैश करके और अत्यधिक पुनरावर्ती या वितरणकारी प्रकार संचालनों से बचकर संकलन समय घटाएँ।

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

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

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

पाठ्यक्रम
101
पाठ
352

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

क्या “धीमे TypeScript संकलन की प्रोफ़ाइल बनाना” पाठ निःशुल्क है?

हाँ—“धीमे TypeScript संकलन की प्रोफ़ाइल बनाना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“धीमे TypeScript संकलन की प्रोफ़ाइल बनाना” में मैं क्या सीखूँगा?

बाधाएँ खोजने के लिए --extendedDiagnostics और --generateTrace का उपयोग करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

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

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

“धीमे TypeScript संकलन की प्रोफ़ाइल बनाना” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. धीमे TypeScript संकलन की प्रोफ़ाइल बनाना
  2. महँगे प्रकार ऑपरेशन से बचना
  3. skipLibCheck और पृथक घोषणाएँ
  4. CI में प्रकार-जाँच: रणनीतियाँ और टूल
← TypeScript Academy पर वापस जाएँ