clinic.js — TypeScript अनुप्रयोगों की निगरानी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें
```html

clinic.js क्या है?

Clinic.js TypeScript में लिखे गए Node.js अनुप्रयोगों की निगरानी और प्रोफाइलिंग के लिए एक टूलसेट है। यह डेवलपर्स को प्रदर्शन अड़चनों, मेमोरी लीक और Event Loop समस्याओं की पहचान करने में सक्षम बनाता है। यह लाइब्रेरी flamegraph, bubbleprof और heapprofiler के रूप में विज़ुअल रिपोर्ट प्रदान करती है।

TypeScript निगरानी की आवश्यकता क्यों है?

TypeScript JavaScript में कंपाइल होता है, लेकिन रनटाइम स्तर पर यह वही Node.js है। निगरानी के बिना यह समझना असंभव है कि लोड के तहत एप्लिकेशन धीमा क्यों हो रहा है। Clinic.js मदद करता है:

  • धीमे फंक्शन और एसिंक्रोनस ऑपरेशन का पता लगाना
  • मेमोरी उपयोग का विश्लेषण करना
  • Event Loop को ऑप्टिमाइज़ करना (उदाहरण के लिए, भारी गणनाओं के साथ काम करते समय)
  • रीफैक्टरिंग से पहले और बाद में प्रदर्शन की तुलना करना

स्थापना

clinic.js को npm के माध्यम से वैश्विक रूप से स्थापित करें:

npm install -g clinic

TypeScript प्रोजेक्ट में उपयोग के लिए टाइप्स भी स्थापित करें:

npm install --save-dev @types/node

मुख्य कार्य

  • clinic doctor — एप्लिकेशन स्वास्थ्य का सामान्य निदान (Event Loop, मेमोरी, CPU)
  • clinic flame — कॉल स्टैक विश्लेषण के लिए फ्लेम-ग्राफ बनाना
  • clinic bubbleprof — एसिंक्रोनस ऑपरेशन (promises, callbacks) का विज़ुअलाइज़ेशन
  • clinic heapprofiler — मेमोरी लीक खोजने के लिए हीप प्रोफाइलिंग

TypeScript के साथ उपयोग का उदाहरण

मान लीजिए आपके पास Express और TypeScript के साथ एक एप्लिकेशन है। इसे clinic doctor के साथ चलाएँ:

clinic doctor -- node dist/index.js

काम पूरा होने के बाद (Ctrl+C) एक HTML रिपोर्ट खुलेगी। परीक्षण के लिए कोड उदाहरण:

import express from 'express';const app = express();

app.get('/heavy', (req, res) => { const arr = []; for (let i = 0; i < 1e6; i++) { arr.push(Math.random()); } res.send('Done');});

app.listen(3000, () => console.log('Server running'));

फिर इसे autocannon से लोड करें:

npx autocannon -c 10 -d 10 http://localhost:3000/heavy

रिपोर्ट दिखाएगी कि लूप Event Loop को ब्लॉक कर रहा है।

कब उपयोग करें

  • production में प्रदर्शन में गिरावट आने पर
  • एप्लिकेशन को स्केल करने से पहले
  • कोड के महत्वपूर्ण भागों को रीफैक्टर करते समय
  • एसिंक्रोनस फ्लो को ऑप्टिमाइज़ करने के लिए (उदाहरण के लिए, RxJS का उपयोग करते समय)

निष्कर्ष

Clinic.js Node.js के साथ काम करने वाले किसी भी TypeScript डेवलपर के लिए एक must-have टूल है। यह मैन्युअल लॉगिंग को बदलता है और उन समस्याओं को जल्दी से खोजने में मदद करता है जिन्हें डीबगर में पकड़ना असंभव है।

```

अनुशंसाएँ