تقنية

reset_peak في بايثون: هل تعني إعادة القمة إلى صفر؟

الحجم الحالي موجب والقمة تساويه بعد الإعادة
قراءة مباشرة بعد reset_peak. [1] [2]

إعادة القمة لا تعني تصفير الحجم المتتبع. [1] [2]

الخلاصة السريعة

تجعل reset_peak القمة المسجلة مساوية للحجم الحالي، ولا تمسح سجلات التتبع. [1] [2]

  • نبدأ التتبع قبل إنشاء bytearray. [1] [2]
  • نبقي الكائن a حيًا. [1] [2]
  • نعيد القمة ثم نقرأ مباشرة. [1] [2]
  • المخرجات True True: القمة تساوي الحالي، والحالي موجب. [1] [2]
  • اختبرنا 3.12.14؛ لا نقيس إجمالي ذاكرة الجهاز. [1] [2]

المثال

import tracemalloc as t
t.start()
a=bytearray(10000)
t.reset_peak()
c,p=t.get_traced_memory()
print(c==p,c>0)
t.stop()

[1] [2]

c للحجم الحالي وp للقمة؛ القياس لكتل الذاكرة المتتبعة. [1] [2]

ما الذي تغير؟

يضع التنفيذ عداد الحجم الحالي في عداد القمة عند التتبع. [1] [2]

بعد إعادة القمة بقي سجل تخصيص a متاحًا في فحصنا؛ لم نحرر الكائن. [1] [2]

القمة للحجم الحالي وسجل تخصيص الكائن باق
أبقينا a؛ فحص سجل تخصيصه مستقل. [1] [2]

حدود القراءة

عمل لاحق قد يغير القياس. لا نقدم رقم بايتات ثابتًا أو نتيجة أداء. [1] [2]

المراجع

  1. Python: tracemalloc
  2. CPython 3.12.14: tracemalloc.c
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.