ไลบรารี iOS ที่ให้เครื่องมือนักพัฒนาสำหรับการเรียกดูวัตถุในหน่วยความจำเมื่อเวลาผ่านไปโดยใช้ fballocationTracker และ fbretaincycledetector
ห้องสมุดนี้แสดงให้เห็นว่า FBAllocationTracker
และ FBRetainCycleDetector
สามารถร่วมมือกันอย่างไรและวิธีที่พวกเขาสามารถใช้ในแอพจริงได้อย่างไร
มันใช้ fballocationTracker เพื่อรวบรวมข้อมูลเกี่ยวกับวัตถุ รองรับรุ่นและการตรวจจับวัฏจักร
นี่คือตัวอย่างเล็ก ๆ (โครงการมีอยู่ในตัวอย่างไดเรกทอรี)
เพิ่ม CartFile ของคุณ:
github "facebook/FBMemoryProfiler"
FBMemoryProfiler
สร้างขึ้นจากการสร้างที่ไม่ใช่การปลดปล่อยดังนั้นเมื่อคุณต้องการทดสอบให้ใช้
carthage update --configuration Debug
ไปยัง Podspec ของคุณเพิ่ม:
pod 'FBMemoryProfiler'
คุณจะสามารถใช้ FBMemoryProfiler
ได้อย่างเต็มที่เฉพาะใน Debug
บิลด์ สิ่งนี้ถูกควบคุมโดยการรวบรวมธงที่สามารถให้กับบิลด์เพื่อให้ทำงานได้ในการกำหนดค่าอื่น ๆ
ในการเริ่มต้นใช้ FBMemoryProfiler
คุณจะต้องเปิดใช้งาน FBAllocationTracker
ก่อน
# import < FBAllocationTracker/FBAllocationTrackerManager.h >
int main ( int argc, char * argv[]) {
[[FBAllocationTrackerManager sharedManager ] startTrackingAllocations ];
[[FBAllocationTrackerManager sharedManager ] enableGenerations ];
@autoreleasepool {
return UIApplicationMain (argc, argv, nil , NSStringFromClass ([AppDelegate class ]));
}
}
เพื่อเปิดใช้งานหน่วยความจำ profiler:
# import < FBMemoryProfiler/FBMemoryProfiler.h >
FBMemoryProfiler *memoryProfiler = [FBMemoryProfiler new ];
[memoryProfiler enable ];
// Store memory profiler somewhere to extend it's lifetime
_memoryProfiler = memoryProfiler;
FBMemoryProfiler
จะปรากฏเป็นปุ่มบนหน้าจอ เมื่อแตะแล้วมันจะเปิดหน่วยความจำในโหมดเต็มขนาด
นอกจากนี้เรายังสามารถกำหนดปลั๊กอิน (ตรวจสอบด้านล่าง) และตัวกรองเพื่อรักษาเครื่องตรวจจับวงจรที่เราส่งผ่านไปยังการกำหนดค่า
_memoryProfiler = [[FBMemoryProfiler alloc ] initWithPlugins: @[[IncredibleCacheCleaningPlugin new ],
[AwesomeLoggerPlugin new ]]
retainCycleDetectorConfiguration: someConfigurationWithCustomFilters];
[_memoryProfiler enable ];
ปลั๊กอินเป็นวัตถุที่สอดคล้องกับโปรโตคอล FBMemoryProfilerPluggable ตัวอย่างการใช้งาน: ตัวทำความสะอาดแคชแบบกำหนดเองตัวบันทึกที่บันทึกข้อมูลไปยังเซิร์ฟเวอร์
ดูไฟล์ที่มีส่วนร่วมสำหรับวิธีการช่วยเหลือ
ดู (ใบอนุญาต)