2012-02-27 7 views
1

iOSで空きメモリの量を確認するにはどうすればよいですか?iOSで空きメモリの量を知るにはどうすればよいですか?

+1

何を達成したいと考えています取り組んでいますか?そして、あなたは「自由」な記憶をどのくらい正確に定義していますか? OSは必要なものによっては他のプロセスを自由に退去させることができるため、正しい答えは使用事例によって異なります。 – StilesCrisis

+0

可能な複製http://stackoverflow.com/questions/1020327/how-to-find-available-memory-in-iphone-programmatically – 0xDE4E15B

+0

[iPhone OSアプリケーション用のメモリ](http://stackoverflow.com)の可能な複製/ questions/2798638/available-memory-for-iphone-os-app) – dirkgently

答えて

1
- (uint64_t)getFreeDiskspace 
{ 
uint64_t totalSpace = 0; 
uint64_t totalFreeSpace = 0; 

__autoreleasing error = nil; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; 

if (dictionary) { 
    NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; 
    NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; 
    totalSpace = [fileSystemSizeInBytes unsignedLongLongValue]; 
    totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue]; 
    NSLog(@"Memory Capacity of %llu MiB with %llu MiB Free memory available.", ((totalSpace/1024ll)/1024ll), ((totalFreeSpace/1024ll)/1024ll)); 
} else { 
    NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %d", [error domain], [error code]); 
} 

return totalFreeSpace; 
} 

これは

1

使用このコード:

natural_t freeMemory(void) { 
    mach_port_t   host_port = mach_host_self(); 
    mach_msg_type_number_t host_size = sizeof(vm_statistics_data_t)/sizeof(integer_t); 
    vm_size_t    pagesize; 
    vm_statistics_data_t  vm_stat; 

    host_page_size(host_port, &pagesize); 

    if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS) NSLog(@"Failed to fetch vm statistics"); 

    natural_t mem_used = (vm_stat.active_count + vm_stat.inactive_count + vm_stat.wire_count) * pagesize; 
    natural_t mem_free = vm_stat.free_count * pagesize; 
    natural_t mem_total = mem_used + mem_free; 

    return mem_free; 
} 

私はこのコードのためにクレジットを主張していませんよ。私はhereからそれを得た。

希望すると便利です。

関連する問題