Find where object is retained with ARC

后端 未结 5 1472
逝去的感伤
逝去的感伤 2020-12-07 12:03

I have an object that is being retained more than necessary (most likely due to a property that is strong instead of weak). Big codebase, so it\'s

5条回答
  •  北海茫月
    2020-12-07 12:58

    To track growth of an application, Heapshot Analysis has proven very effective. It will capture both true leaks and accretion of memory where the allocations are not accounted for by leaks.

    You can see all of the retain/release events, and their backtrace, using the Allocations instrument. Hit the little (i) button on the Allocations instrument and turn on "Record reference counts". Turning on "Only track active allocations" reduces the amount of data collected by Instruments, making it snappier (and dead allocations aren't really useful in this context, but can be in others).

    With that, you can dive into any allocation (by clicking on the right-arrow in the address field), see all the retain/release events and see exactly where they occurred.

    enter image description here

提交回复
热议问题