🚀 تحسين أداء Python: استخدام `__slots__`
هل تعاني من استهلاك ذاكرة كبير في كائنات Python؟ اكتشف كيف يمكن لـ `__slots__` أن يساعدك في تحسين الأداء وتقليل استهلاك الذاكرة بشكل كبير!
عندما تنشئ كائنًا في Python بدون `__slots__`، يقوم Python بإنشاء قاموس (`__dict__`) لتخزين سمات الكائن. هذا يوفر مرونة ولكنه يستهلك ذاكرة إضافية. بتعريف `__slots__`، أنت تخبر Python بتخصيص مساحة ثابتة لكل سمة محددة، مما يلغي الحاجة إلى `__dict__` ويقلل بشكل كبير من استهلاك الذاكرة، خاصة عند إنشاء عدد كبير من الكائنات. لاحظ أن استخدام `__slots__` يمنع إضافة سمات جديدة ديناميكيًا بعد الإنشاء.
['#Python', '#برمجة', '#تحسين_الأداء', '#تطوير_البرمجيات', '#PythonTips', '#علم_البيانات', '#Backend']
هل تعاني من استهلاك ذاكرة كبير في كائنات Python؟ اكتشف كيف يمكن لـ `__slots__` أن يساعدك في تحسين الأداء وتقليل استهلاك الذاكرة بشكل كبير!
class Point:
__slots__ = ('x', 'y')
def __init__(self, x, y):
self.x = x
self.y = y
# بدون __slots__
class PointWithoutSlots:
def __init__(self, x, y):
self.x = x
self.y = y
import sys
# مقارنة حجم الذاكرة
point1 = Point(1, 2)
point2 = PointWithoutSlots(1, 2)
print(f'حجم الذاكرة لكائن Point (مع __slots__): {sys.getsizeof(point1)} بايت')
print(f'حجم الذاكرة لكائن PointWithoutSlots (بدون __slots__): {sys.getsizeof(point2)} بايت')
عندما تنشئ كائنًا في Python بدون `__slots__`، يقوم Python بإنشاء قاموس (`__dict__`) لتخزين سمات الكائن. هذا يوفر مرونة ولكنه يستهلك ذاكرة إضافية. بتعريف `__slots__`، أنت تخبر Python بتخصيص مساحة ثابتة لكل سمة محددة، مما يلغي الحاجة إلى `__dict__` ويقلل بشكل كبير من استهلاك الذاكرة، خاصة عند إنشاء عدد كبير من الكائنات. لاحظ أن استخدام `__slots__` يمنع إضافة سمات جديدة ديناميكيًا بعد الإنشاء.
['#Python', '#برمجة', '#تحسين_الأداء', '#تطوير_البرمجيات', '#PythonTips', '#علم_البيانات', '#Backend']