获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等

本文主要是介绍获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

设备可用内存及当前应用所占内存

// 获取当前设备可用内存及所占内存的头文件  
#import <sys/sysctl.h>  
#import <mach/mach.h>  // 获取当前设备可用内存(单位:MB)  
- (double)availableMemory  
{  vm_statistics_data_t vmStats;  mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT;  kern_return_t kernReturn = host_statistics(mach_host_self(),   HOST_VM_INFO,   (host_info_t)&vmStats,   &infoCount);  if (kernReturn != KERN_SUCCESS) {  return NSNotFound;  }  return ((vm_page_size *vmStats.free_count) / 1024.0) / 1024.0;  
}  // 获取当前任务所占用的内存(单位:MB)  
- (double)usedMemory  
{  task_basic_info_data_t taskInfo;  mach_msg_type_number_t infoCount = TASK_BASIC_INFO_COUNT;  kern_return_t kernReturn = task_info(mach_task_self(),   TASK_BASIC_INFO,   (task_info_t)&taskInfo,   &infoCount);  if (kernReturn != KERN_SUCCESS  ) {  return NSNotFound;  }  return taskInfo.resident_size / 1024.0 / 1024.0;  
}  

手机系统大小、可用空间大小

+(uint64_t)getFreeDiskspace {uint64_t totalSpace = 0.0f;uint64_t totalFreeSpace = 0.0f;NSError *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 floatValue];totalFreeSpace = [freeFileSystemSizeInBytes floatValue];NSLog(@"Memory Capacity of %llu GB with %llu GB Free memory available.", ((totalSpace/1024ll)/1024ll/1024ll), ((totalFreeSpace/1024ll)/1024ll/1024ll));} else {NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %d", [error domain], [error code]);}return totalFreeSpace;
}

其中
attributesOfFileSystemForPath:error:
返回的是一个字典。感兴趣的同学可用自己看下里面的其他信息




这篇关于获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/471868

相关文章

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境