3

重複の可能性:
iOS アプリが使用しているメモリ量をプログラムで通知する方法は?

アプリケーションがフォアグラウンドまたはバックグラウンドで実行されているときに、アプリケーションが iPhone で使用するメモリの量を知る必要があります。5 秒ごとにメモリ使用量を表示する方がよいでしょう。使用中のメモリを表示するコードを書くことは可能ですか? どんな提案も感謝されます

4

2 に答える 2

4

最初にメソッド report_memory を .h ファイルに含めてからインポートします

#import <mach/mach.h>

これを.mファイルに

その後、メモリ使用量の値を出力したい場所にこの行を書きます

[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(report_memory) userInfo:nil repeats:YES];

次にこれを追加します

-(void) report_memory {
    struct task_basic_info info;
    mach_msg_type_number_t size = sizeof(info);
    kern_return_t kerr = task_info(mach_task_self(),
                                   TASK_BASIC_INFO,
                                   (task_info_t)&info,
                                   &size);
    if( kerr == KERN_SUCCESS ) {
        NSLog(@"Memory usage: %.4lf MB", info.resident_size/1024.0/1024.0);
    } else {
        NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
    }
}

メソッドを .m ファイルに

于 2012-08-27T17:56:11.670 に答える
2

ユーザーNSTimerは5秒間隔で実行するようにスケジュールされています。使用済みメモリの値を取得するには、ここにいくつかのコードがあります

#import <mach/mach.h>

void report_memory(void) {
    struct task_basic_info info;
    mach_msg_type_number_t size = sizeof(info);
    kern_return_t kerr = task_info(mach_task_self(),
                               TASK_BASIC_INFO,
                               (task_info_t)&info,
                               &size);
    if( kerr == KERN_SUCCESS ) {
        NSLog(@"Memory in use (in bytes): %u", info.resident_size);
    } else {
        NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
    }
}
于 2012-08-27T17:44:46.373 に答える