প্রকল্প সম্পর্কে

Memray হলো Python-এর জন্য একটি মেমোরি প্রফাইলার, যা Python কোড, নেটিভ এক্সটেনশন মডিউল (যেমন C/C++) এবং এমনকি Python ইন্টারপ্রিটারের মধ্যে মেমোরি অ্যালোকেশন ট্র্যাক করতে ডিজাইন করা হয়েছে। এটি প্রতিটি ফাংশন কলের জন্য বিস্তারিত কল স্ট্যাক ট্রেসিং প্রদান করে, যার ফলে মেমোরি ব্যবহারের সঠিক অভিশ্রুতি সম্ভব হয় — নমুনা প্রফাইলারের মতো নয়। এটি CLI এবং লাইব্রেরি উভয় ব্যবহারই সমর্থন করে, যা বিভিন্ন প্রফাইলিং পরিস্থিতির জন্য নমনীয়তা নিশ্চিত করে। মূল ক্ষমতাগুলি হলো: - পূর্ণ কল স্ট্যাক উপস্থাপনার সাথে সব ফাংশন কল ট্রেসিং। - নেটিভ C/C++ কোড প্রফাইলিং — যা Python এক্সটেনশনের ভিতরে রয়েছে (যেমন numpy, pandas) — वैकल्पিক --native ফ্ল্যাগ ব্যবহার করে। - একাধিক রিপোর্ট প্রকার তৈরি: ফ্লেম গ্রাফ (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 সাইন-অফ অনুসরণ করে সম্প্রদায় অবদানের জন্য উন্মুক্ত।