Advertisement
Guest User

Log iOS app memory usage

a guest
Dec 14th, 2011
583
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void logMemoryUsage(void)
  2. {
  3.     static natural_t initialUsed = 0xFFFFFFFF;
  4.     static natural_t previousUsed = 0xFFFFFFFF;
  5.  
  6.     mach_port_t host_port = mach_host_self();
  7.     mach_msg_type_number_t host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
  8.     vm_size_t pagesize;
  9.     vm_statistics_data_t vm_stat;
  10.    
  11.     host_page_size(host_port, &pagesize);
  12.    
  13.     if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS)
  14.     {
  15.         NSLog(@"Failed to fetch vm statistics");
  16.     }
  17.    
  18.     natural_t memUsed = (vm_stat.active_count + vm_stat.inactive_count + vm_stat.wire_count) * pagesize;
  19.     natural_t memFree = vm_stat.free_count * pagesize;
  20.     natural_t memTotal = memUsed + memFree;
  21.  
  22.     if (initialUsed == 0xFFFFFFFF)
  23.     {
  24.         initialUsed = memUsed;
  25.     }
  26.     if (previousUsed == 0xFFFFFFFF)
  27.     {
  28.         previousUsed = memUsed;
  29.     }
  30.     NSLog(@"Memory usage (KB): app %d, delta %d, used %u/%u",
  31.           ((int)memUsed - (int)initialUsed) / 1024,
  32.           ((int)memUsed - (int)previousUsed) / 1024,
  33.           memUsed / 1024,
  34.           memTotal / 1024);
  35.     previousUsed = memUsed;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement