0

私は空のmain()関数を持つプロジェクトを持っています。フレームワークがMacOSでメモリリークを引き起こす

私のプロジェクトにフレームワークをリンクするだけで(例えば、ImageIO.framework)、インストーラは、アプリケーションをシャットダウンした後、解放されていないメモリ割り当てを一覧表示します。

Xcode Instruments

1)私は、Appleフレームワークによって作成された楽器での持続的なメモリ割り当てを非表示にすることができますので、私は私のメモリリークに集中することができますか?

2)これは、Appleが後でOSをクリーンアップすることを知っているためですか?

答えて

1

1について - 割り当てタイプですべてのヒープ割り当てを選択します(すべてのヒープではありません。&匿名VM)。

2について - Appleにもいくつかのメモリリークがありますが、アプリのシャットダウン後に解放されます。

1

1)フレームワークによって作成されたオブジェクトの所有者になることができます。 Instruments User Guide, Find Memory Leaksを読んでください。

2)はい。 NSColorPanelのように、再利用できるシングルトンとオブジェクトは割り当て解除されません。また、クリーンアップせずにアプリケーションを終了する方が速いです。例えば、NSManagedObjectのドキュメントから: "Core Dataは、(アプリケーションが終了するなどの)すべてのシナリオでdeallocが呼び出されることを保証しません"。

関連する問題