การรวบรวมขยะและการนับการอ้างอิงทำงานอย่างไรใน Xamarin

Xamarin มีเครื่องมือจัดการหน่วยความจำของตัวเองชื่อ Garbage Collector เนื่องจากใช้ C#

เมื่อเราพัฒนาจำนวนการอ้างอิงแอปพลิเคชัน iOS จะปรากฏเป็นภาพ

ฉันไม่เข้าใจจริงๆ ว่าเทคนิคการจัดการหน่วยความจำทั้งสองนี้ทำงานควบคู่กันได้อย่างไร

เนื่องจากวัตถุบางอย่างสามารถรวบรวมขยะได้ในขณะที่จับวัตถุ Objective ทำให้เกิดหน่วยความจำรั่ว ตัวชี้ห้อย ฯลฯ เช่นเดียวกันก็ใช้ในทางกลับกัน




คำตอบ (1)


วัตถุที่ไม่มีการจัดการ (วัตถุที่สืบทอดมาจาก NSObject) จะไม่ได้รับการจัดการโดย GC GC ของ Xamarin ไม่สามารถจัดการการอ้างอิงแบบวงกลมของวัตถุที่ไม่มีการจัดการได้ การจัดการการอ้างอิงแบบวงกลมต้องใช้การอ้างอิงที่อ่อนแอ คุณต้องระมัดระวังเมื่อคุณสร้างการอ้างอิงระหว่างออบเจ็กต์ที่มีการจัดการและไม่ได้รับการจัดการ โดยเฉพาะใน Lambda

ดู หน่วยความจำ Xamarin iOS รั่วไหลทุกที่

person sunyt    schedule 11.03.2017