Autorelease tidbits:
RunLoops wrap your code in autoreleasepool {} before calling it; so does Swift Concurrency
DispatchQueues don't, by default! Configure them with .workItem autorelease frequency to fix this
It's much less overhead than you'd expect from my description
swiftc can autorelease objects when returning them from @objc methods
Neither ObjC nor Swift ARC will autorelease things other than that
Use "Allocations" in Instruments to see where adding a pool would help