- この問題を再現するには、単純にCocoaアプリケーションを作成し、 SwiftまたはObjective-C(どちらもテスト済み)を選択します。プロジェクトを実行します。
オープン
debug navigator
(あなたのアプリケーションの最初のメモリ消費量 は25メガバイトの周りでなければなりません)、単にダウンメニューあなたの空のアプリの ドロップで遊んで、かつ短期間で大幅に増加するとメモリ消費量を観察します。Choose a profiling template
でLeaks
を選択し、 ターゲットとしてあなたのアプリを選択し、[録音]ボタンをクリックしてXcodeでOpen Developer Tool
オープンInstruments
からCocoaフレームワークにメモリリークがありますか?または私は何かを逃していますか?その後、。
あなたのアプリで遊んで、ウィンドウのサイズを変更して、 のメニューを開きます。数分後にメモリ消費量がわかります が110MBを超えて上昇し、クリックするとリークポイントに気付くでしょう
システムからメモリがなくなるまで、アプリケーションからのメモリリークは増加し続けます。その後、
- 一時停止し、検出されたリークスポット(タイムライン上の赤いバツ印)をクリックして、あなたはおそらく以下の犯人の一部が表示されます:
リストは、長すぎるので、私はほんの数が含まれていますそれらはすべてAppKitの例外ではありません:
_NSLocalEventObserver 1 0x60000023ab00 32 Bytes AppKit + [NSEvent addLocalMonitorForEventsMatchingMask:placement:handler:]
_NSViewAuxiliary 1 0x110107080 448 Bytes AppKit -[NSView(NSInternal) _allocAuxiliary:]
NSPopUpButtonCell 1 0x6080001c7530 240 Bytes AppKit -[NSControl initWithFrame:]
NSControlAuxiliary 1 0x60800024c840 48 Bytes AppKit -[NSControl _commonEarlyInit]
NSMutableDictionary 1 0x60800024c6c0 48 Bytes AppKit -[NSCell setFont:]
NSPopUpButton 1 0x60800036e940 192 Bytes AppKit -[NSSpellChecker init]
NSCellAuxiliary 1 0x6080000eb280 128 Bytes AppKit -[NSCell init]
Malloc 48 Bytes 1 0x60800024c6f0 48 Bytes AppKit -[NSCell setFont:]
NSMenu 1 0x608000861f40 64 Bytes AppKit -[NSPopUpButtonCell initTextCell:pullsDown:]
_NSMenuImpl 1 0x6080000cdc10 112 Bytes AppKit -[NSMenu _createExtraIvars]
NSCarbonMenuImpl 1 0x6080000cdc80 112 Bytes AppKit -[NSMenu _createMenuImpl]
NSExtraMICData 1 0x608000038c00 32 Bytes AppKit -[NSMenuItemCell initTextCell:]
NSMutableArray 1 0x60800024daa0 48 Bytes AppKit -[NSMenu insertItem:atIndex:]
これは既知のバグですか?私はXcodeによって生成されたコードに触れていません。 AppKitやCocoaフレームワーク、あるいはおそらく両方でメモリリークがありますか?または私は何か間違っているのですか?
実際に問題があるかどうかを確認し、実際に試していただきありがとうございます。 – ilgaar
すべてのオブジェクトが割り当てられた後の道を買うメモリ消費は、この場合はある特定のポイントを上回ってはいけません。 – ilgaar