2012-05-10 8 views
1

私は以下のようにマクロを宣言し、サンプル・アプリケーションを作成しました:iOS Instrumentsのデータをどのように解釈するのですか?

#define kSampleString @"didReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarningdidReceiveMemoryWarning" 

ユーザーは以下のイベントハンドラをクリックすると、私はマクロ文字列をログに記録します。以下は

-(IBAction)SampleMethod:(id)sender{ 
    NSLog(@"Log %@",kSampleString); 
} 

私が持っている楽器のデータです:

enter image description here 楽器での割り当てをチェックするには、私は、以下の情報を得ました。私は割り当てが赤色でマークされた領域でNSLogvコールで発生することがわかりました。しかし、NSLogvに関して起こっている他のことをどのように解釈するのですか?これらのmalloc操作は何ですか?

+0

NSLogの中心に何が悪用されているかは誰が知っていますか? –

+0

@HotLicks [この男、明らかに](http://www.karlkraft.com/index.php/2009/03/23/114/) – CodaFi

+1

拡張詳細ビューを公開してどこから来ているのか分かりません右側に?それはその割り当てを担当するスタックトレースを表示するはずです。 –

答えて

1

Mallocは、目的のCのallocのCバージョンであり、最終的にallocが実行されるときに呼び出されます。 Instrumentsではアプリ内のすべての割り当てを追跡しているので、Mallocが表示されるのは当然のことです。

CFStringは、NSStringのCoreFoundationのいとこです(NSStringはCFStringの周りに構築されたクラス・クラスタなので)、NSLog()は常に不変の文字列を渡すことになっています。センス。あなたのアプリがメモリを漏らしていたなら、それは問題になるでしょうが、今のところすべてがうまくいきます。

私が心配しているのは、大量の1.5 KB文字列Mallocがリストの途中にあることです。それは単純な文字列のためにあまりにも多くのメモリのように見えます。

関連する問題