以編程方式檢索iPhone上的內存使用情況我正在嘗試檢索我的iPhone應用程序在任何時候以編程方式使用的內存量。是的,我知道Objectalloc/泄漏。我對這些并不感興趣,只是想知道是否有可能編寫一些代碼,獲取所使用的字節數并通過NSLog報告它。
3 回答

忽然笑
TA貢獻1806條經驗 獲得超5個贊
#import <mach/mach.h>// ...void report_memory(void) { struct task_basic_info info; mach_msg_type_number_t size = TASK_BASIC_INFO_COUNT; 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): %lu", info.resident_size); NSLog(@"Memory in use (in MiB): %f", ((CGFloat)info.resident_size / 1048576)); } else { NSLog(@"Error with task_info(): %s", mach_error_string(kerr)); }}

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
TASK_BASIC_INFO
/* Don't use this, use MACH_TASK_BASIC_INFO instead */
MACH_TASK_BASIC_INFO
:
void report_memory(void){ struct mach_task_basic_info info; mach_msg_type_number_t size = MACH_TASK_BASIC_INFO_COUNT; kern_return_t kerr = task_info(mach_task_self(), MACH_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)); }}

手掌心
TA貢獻1942條經驗 獲得超3個贊
void report_memory(void) { static unsigned last_resident_size=0; static unsigned greatest = 0; static unsigned last_greatest = 0; 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 ) { int diff = (int)info.resident_size - (int)last_resident_size; unsigned latest = info.resident_size; if( latest > greatest ) greatest = latest; // track greatest mem usage int greatest_diff = greatest - last_greatest; int latest_greatest_diff = latest - greatest; NSLog(@"Mem: %10u (%10d) : %10d : greatest: %10u (%d)", info.resident_size, diff, latest_greatest_diff, greatest, greatest_diff ); } else { NSLog(@"Error with task_info(): %s", mach_error_string(kerr)); } last_resident_size = info.resident_size; last_greatest = greatest;}
- 3 回答
- 0 關注
- 382 瀏覽
添加回答
舉報
0/150
提交
取消