python - কশন - পাইথনের একটি বস্তুর দ্বারা কত মেমরি ব্যবহার করা হচ্ছে তা জানুন




পাইথন ভাষায় ডিকশনারি কেন ব্যবহার করা হয় (4)

আরেকটি পদ্ধতির পিচ্ছিল ব্যবহার করা হয়। এই প্রশ্নের একটি সদৃশ এই উত্তর দেখুন।

এই প্রশ্নটি ইতিমধ্যে একটি উত্তর আছে:

কিভাবে আপনি একটি বস্তুর দ্বারা কত মেমরি ব্যবহার করা হয় তা খুঁজে বের করতে যেতে হবে? আমি জানি কোডটি ব্লকের কতটুকু ব্যবহার করা যায়, কিন্তু কোনও তাত্ক্ষণিক বস্তু (যে কোন সময় তার জীবনের সময়) দ্বারা এটি ব্যবহার করা সম্ভব নয়, যা আমি চাই।


এই যত্নের সাথে ব্যবহার করা উচিত কারণ __sizeof__ বস্তুর উপর একটি override বিভ্রান্তিকর হতে পারে।

Bregman.suite ব্যবহার করে, sys.getsizeof আউটপুট সহ কিছু পরীক্ষা অণু বস্তুর একটি অনুলিপি (তথ্য) একটি অনুলিপি বস্তুর একটি অনুলিপি বস্তুর চেয়ে বড় হিসাবে (mfcc)।

>>> mfcc = MelFrequencyCepstrum(filepath, params)
>>> data = mfcc.X[:]
>>> sys.getsizeof(mfcc)
64
>>> sys.getsizeof(mfcc.X)
>>>80
>>> sys.getsizeof(data)
80
>>> mfcc
<bregman.features.MelFrequencyCepstrum object at 0x104ad3e90>

নিম্নলিখিতগুলির মধ্যে আমার কোনও ব্যক্তিগত অভিজ্ঞতা নেই তবে "পাইথন [মেমরি] প্রোফাইলার" উত্পাদনের জন্য সহজ অনুসন্ধান:

  • PySizer, "পাইথনের জন্য মেমরি প্রোফাইলার", http://pysizer.8325.org/ এ পাওয়া যায়। তবে পৃষ্ঠাটি ইঙ্গিত দেয় যে প্রকল্পটিকে কিছুক্ষণের জন্য আপডেট করা হয়নি, এবং এটি বোঝায় ...

  • হ্যাপি, পাইগন প্রোগ্রামগুলিতে মেমরি সংক্রান্ত সমস্যাগুলির বিষয়ে ডিবাগিং এবং অপ্টিমাইজেশন সমর্থন করে [ http://guppy-pe.sourceforge.net/#Heapy

আশা করি এইটি কাজ করবে.


বড় বস্তুর জন্য আপনি কিছুটা অপ্রয়োজনীয় কিন্তু কার্যকরী পদ্ধতি ব্যবহার করতে পারেন: আপনার পাইথন প্রক্রিয়াটি সিস্টেমে কত পরিমাণ মেমরি রয়েছে তা পরীক্ষা করুন, তারপর বস্তু মুছে ফেলুন এবং তুলনা করুন।

এই পদ্ধতিতে অনেকগুলি ত্রুটি রয়েছে তবে এটি আপনাকে খুব বড় বস্তুর জন্য খুব দ্রুত অনুমান দেবে।







memory-profiling