ฉันลองใช้ตัวเลือกส่วนใหญ่ที่กล่าวถึงก่อนหน้านี้ แต่พบว่าแพคเกจขนาดเล็กและใช้งานง่ายนี้จะดีที่สุด: pympler
ค่อนข้างตรงไปตรงมาเพื่อติดตามวัตถุที่ไม่ได้เก็บขยะตรวจสอบตัวอย่างเล็ก ๆ นี้:
ติดตั้งแพ็คเกจผ่าน pip install pympler
from pympler.tracker import SummaryTracker
tracker = SummaryTracker()
# ... some code you want to investigate ...
tracker.print_diff()
เอาท์พุทแสดงให้คุณเห็นวัตถุทั้งหมดที่ได้รับการเพิ่มรวมทั้งหน่วยความจำที่พวกเขาใช้
ตัวอย่างผลลัพธ์:
types | # objects | total size
====================================== | =========== | ============
list | 1095 | 160.78 KB
str | 1093 | 66.33 KB
int | 120 | 2.81 KB
dict | 3 | 840 B
frame (codename: create_summary) | 1 | 560 B
frame (codename: print_diff) | 1 | 480 B
แพ็คเกจนี้มีคุณสมบัติเพิ่มเติมมากมาย ตรวจสอบเอกสารของ pymplerโดยเฉพาะในส่วนการระบุการรั่วไหลของหน่วยความจำ