بدست آوردن مقدار فضای ذخیره سازی dictionary در پایتون
تمام دادهها با هر نوعی در سیستمهای کامپیوتری و در دنیای صفر و یکها دارای یک حجم هستند. در این نوشته به روش محاسبهی اندازهی فضای ذخیره سازی dictionaryها در پایتون میپردازیم.
بدست آوردن مقدار فضای ذخیره سازی dictionary در پایتون
برای بدست آوردن مقدار فضای ذخیره سازی برای یک dictionary در پایتون از قطعه کد زیر استفاده کنید:
import sys sys.getsizeof(items)
اگر نیاز به آموزشهای بیشتری در ارتباط با زبان برنامه نویسی پایتون دارید در بخش نظرات این نوشته برای ما بنویسید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]



















این روش در همه سیستم عاملها نتیجه مشابه میده یا تفاوت داره؟
تابع sys.getsizeof() اندازه اشغال شده توسط آبجکت در حافظه را برمیگرداند، ولی ممکن است مقدار دقیق آن بین سیستمعاملها و حتی نسخههای مختلف پایتون کمی متفاوت باشد، چون پیادهسازی داخلی حافظه در هر محیط متفاوت است.
میشه از این برای optimization حافظه استفاده کرد؟
بله، میتوان با اندازهگیری sys.getsizeof()، حجم مصرفی آبجکتها را بررسی کرد و در طراحی برنامه، ساختارهای بهینهتر (مثل list یا tuple به جای dict در موارد خاص) انتخاب کرد. اما توجه داشته باشید که این فقط اندازه آبجکت اصلی را نشان میدهد و حافظهای که عناصر داخلی اشغال میکنند را شامل نمیشود.
با افزایش تعداد آیتمها، افزایش اندازه خطی هست یا متفاوت؟
برای dictionaryها افزایش اندازه تقریبا خطی است، ولی پایتون برای افزایش کارایی و کاهش برخورد هش، فضای اضافی رزرو میکند. بنابراین گاهی افزایش اندازه میتواند کمی غیرخطی به نظر برسد.
اندازه dictionary توی RAM و روی دیسک یکیه یا فرق داره؟
اندازه dictionary در حافظه RAM و اندازه فایل ذخیره شده روی دیسک متفاوت است. در حافظه، پایتون ساختار داخلی و حافظه رزرو شده را دارد، ولی روی دیسک معمولاً فقط دادهها ذخیره میشوند و ساختار داخلی dictionary لحاظ نمیشود.
این تابع روی dictionaryهای بزرگ هم سریع اجرا میشه؟
بله، sys.getsizeof() خیلی سریع اجرا میشود، حتی روی dictionaryهای بزرگ، چون فقط اندازهی آبجکت را برمیگرداند و محاسبه پیچیدهای انجام نمیدهد. اما برای بررسی حجم کل شامل عناصر داخلی، باید از روشهای دیگری مثل ماژول pympler استفاده کنید.