इस प्रोजेक्ट के बारे में
Memray Python के लिए एक मेमोरी प्रोफाइलर है जो Python कोड, नेटिव एक्सटेंशन मॉड्यूल (जैसे C/C++), और यहां तक कि Python इंटरप्रीटर में मेमोरी आवंटन को ट्रैक करने के लिए डिज़ाइन किया गया है। यह प्रत्येक फंक्शन कॉल के लिए विस्तृत कॉल स्टैक ट्रेसिंग प्रदान करता है, जिससे मेमोरी उपयोग का सटीक एट्रिब्यूशन संभव होता है — सैंपलिंग प्रोफाइलर्स की तरह नहीं। यह CLI और लाइब्रेरी दोनों उपयोगों का समर्थन करता है।
मुख्य क्षमताएं:
- पूर्ण कॉल स्टैक प्रतिनिधित्व के साथ सभी फंक्शन कॉल्स की ट्रसेंिंग।
- वैकल्पिक --native फ्लैग के माध्यम से Python एक्सटेंशन (जैसे numpy, pandas) में नेटिव C/C++ कोड का प्रोफाइलिंग।
- फ्लेम ग्राफ (HTML), तालिकाएं, ट्री व्यू, लाइव टर्मिनल मॉनिटरिंग, सारांश और आंकड़े सहित कई रिपोर्ट प्रकार उत्पन्न करना।
- Python थ्रेड्स और नेटिव थ्रेड्स (जैसे C++ एक्सटेंशन से) का समर्थन।
- तेज़ प्रदर्शन: प्रोफाइलिंग के दौरान न्यूनतम देरी; गति बनाम विवरण के लिए नेटिव ट्रैकिंग टॉगल की जा सकती है।
- स्वचालित मेमोरी परीक्षण और सीमाओं के लिए pytest-memray प्लगइन के साथ pytest एकीकरण।
- लाइव मोड: लंबे समय तक चलने वाले स्क्रिप्ट के दौरान वास्तविक समय मेमोरी निरीक्षण के लिए इंटरैक्टिव TUI।
- प्रोग्रामेबल API: विशिष्ट कोड ब्लॉक को प्रोग्रामेटिक रूप से प्रोफाइल करने के लिए memray.Tracker() कंटैक्ट मैनेजर का उपयोग करें।
इंस्टॉलेशन के लिए Python 3.9+ आवश्यक है और यह pip या conda के माध्यम से उपलब्ध है। Linux x86/x64 और macOS के लिए बाइनरी व्हील्स प्रदान की गई हैं; स्रोत बिल्ड के लिए libunwind और liblz4 जैसे सिस्टम निर्भरताओं की आवश्यकता होती है। दस्तावेज़ीकरण और उदाहरण https://bloomberg.github.io/memray/ पर होस्ट किए गए हैं।
Memray उच्च मेमोरी उपयोग, मेमोरी लीक, और आवंटन हॉस्पॉट को पहचानने में मदद करता है। यह Windows या अन्य प्लेटफार्मों का समर्थन नहीं करता है। प्रोजेक्ट Apache-2.0 लाइसेंस के तहत है और DCO साइन-ऑफ के बाद सामुदायिक योगदान का स्वागत करता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.