3
ที่อยู่หน่วยความจำรั่วใน IFeatureClass.Search (เฉพาะ SDE ที่มีการเชื่อมต่อโดยตรง) ของ ArcObjects?
ฝ่ายสนับสนุนของ ESRI กล่าวว่าพวกเขาทำซ้ำปัญหาและได้เปิดรายงานข้อผิดพลาด (NIM070156) ผมตั้งใจว่าจะมีการรั่วไหลของหน่วยความจำ (ในความทรงจำที่ไม่มีการจัดการกอง) ที่เกิดขึ้นเมื่อเครื่องมือในของฉัน .NET / C # ArcMap เพิ่มในการดำเนินการสอบถามเชิงพื้นที่ (ส่งคืนICursorจากIFeatureClass.Searchที่มีISpatialFilterตัวกรองแบบสอบถาม) วัตถุ COM ทั้งหมดจะได้รับการปล่อยตัวโดยเร็วที่สุดเท่าที่พวกเขาจะไม่จำเป็น (ใช้Marshal.FinalReleaseCOMObject) เมื่อต้องการตรวจสอบสิ่งนี้ฉันจะตั้งค่าเซสชัน PerfMon ด้วยตัวนับสำหรับ Private Bytes, Virtual Bytes และ Working Set ของ ArcMap.exe และตั้งข้อสังเกตว่าทั้งสามเพิ่มขึ้นอย่างต่อเนื่อง (โดยประมาณ 500KB ต่อการทำซ้ำ) ด้วยการใช้เครื่องมือแต่ละครั้ง . สิ่งสำคัญนี้จะเกิดขึ้นเฉพาะเมื่อดำเนินการกับคลาสคุณลักษณะบน SDE โดยใช้การเชื่อมต่อโดยตรง (หน่วยเก็บข้อมูล ST_Geometry, ไคลเอ็นต์ Oracle 11g และเซิร์ฟเวอร์) ตัวนับยังคงคงที่เมื่อใช้ Geodatabase ของไฟล์เช่นเดียวกับเมื่อเชื่อมต่อกับอินสแตนซ์ SDE รุ่นเก่าที่ใช้การเชื่อมต่อแอปพลิเคชัน …