Я знаю, что есть утечки памяти, которые не имеют большого значения или находятся вне контроля отдельного разработчика, поскольку они находятся в самом SDK, но я вижу, что 32KB в сборке iPhone 4 против iOS SDK 4.2. Я не смог вызвать это на 3GS. Это происходит в ответ на взаимодействие с пользователем (в ответ на открытие библиотеки фотографий, и утечка, кажется, происходит, когда я в библиотеке фотографий), поэтому она может быстро накапливаться.
Вот след стека, который я вижу на iPhone 4:
0 libSystem.B.dylib calloc
1 0x317e8363
2 0x317e9c41
3 0x318273ff
4 0x31827ea5
5 0x302ea49d
6 0x302ebe07
7 0x302eb7c3
8 0x302ebcab
9 0x303304cd
10 UIKit -[UINavigationController _startTransition:fromViewController:toViewController:]
11 UIKit -[UINavigationController _startDeferredTransitionIfNeeded]
12 UIKit -[UINavigationController viewWillLayoutSubviews]
13 UIKit -[UILayoutContainerView layoutSubviews]
14 UIKit -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
15 CoreFoundation -[NSObject(NSObject) performSelector:withObject:]
16 QuartzCore -[CALayer layoutSublayers]
17 QuartzCore CALayerLayoutIfNeeded
18 QuartzCore CA::Context::commit_transaction(CA::Transaction*)
19 QuartzCore CA::Transaction::commit()
20 QuartzCore CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*)
21 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
22 CoreFoundation __CFRunLoopDoObservers
23 CoreFoundation __CFRunLoopRun
24 CoreFoundation CFRunLoopRunSpecific
25 CoreFoundation CFRunLoopRunInMode
26 GraphicsServices GSEventRunModal
27 GraphicsServices GSEventRun
28 UIKit -[UIApplication _run]
29 UIKit UIApplicationMain
30 MyApp main /Users/david/src/MyApp/main.m:14
31 MyApp start
Я не вижу своего кода здесь нигде, и я не уверен, что делать, чтобы проверить символы с адресами. Есть идеи? Может ли это быть как-то связано с подслоями, которые я добавляю? (Это единственное, что я вижу здесь, и могу контролировать.)
Спасибо за любую помощь.
Редактировать: Как указывает вопрос GojaN (спасибо, GojaN), я совершенно забыл упомянуть, что это проявляется в инструментах как:
Leaked Object # Address Size Responsible Library Responsible Frame
GeneralBlock-36864 0x4ff3000 36864 UIKit -[UINavigationController _startTransition:fromViewController:toViewController:]