CN110209640A - 手机系统运行状态下动态切换lz4压缩算法类型的方法 - Google Patents
手机系统运行状态下动态切换lz4压缩算法类型的方法 Download PDFInfo
- Publication number
- CN110209640A CN110209640A CN201910494546.XA CN201910494546A CN110209640A CN 110209640 A CN110209640 A CN 110209640A CN 201910494546 A CN201910494546 A CN 201910494546A CN 110209640 A CN110209640 A CN 110209640A
- Authority
- CN
- China
- Prior art keywords
- cpu
- compression
- idle
- size
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了手机系统运行状态下动态切换lz4压缩算法类型的方法,步骤如下:在Android平台上需要对文件进行压缩时,计算当前cpu的占用率;获取了当前空闲RAM的大小;根据当前空闲RAM的大小动态设置压缩过程中块的大小;根据当前cpu的占用率动态选择lz4压缩算法的类型:若当前cpu占用率高于既定阈值,选择lz4普通压缩算法,否则,选择lz4高压缩率算法。通过本发明的方法,能在Android系统或应用对文件进行压缩时,高效利用CPU资源,合理使用内存,节约用户存储空间,提高Android系统运行流畅度。
Description
技术领域
本发明涉及软件压缩技术领域,尤其涉及手机系统运行状态下动态切换lz4压缩算法类型的方法。
背景技术
文件的压缩是一个比较占用CPU资源和内存的操作。目前,大多数Android应用在压缩文件时不考虑当前CPU的负载和内存的占用,调用固定的压缩接口进行压缩,如果此时用户的Android设备CPU占用率比较高,采取这样的压缩方式会影响系统运行流畅度。
Lz4算法提供了两个设置压缩过程中,块的大小的接口:LZ4_setBlockSizeID(unsigned bsid)和LZ4_setBlockSize(size_t blockSize)。可设置的大小为64K,256K,1MB,4MB。在压缩文件时,获取当前空闲RAM的大小,如果远大于4MB,则设置压缩时,块的大小为4MB;否则,根据其具体值在64K,256K,1MB中选择一个合适值作为压缩时块的大小。
Lz4压缩算法提供了两个压缩接口:普通压缩和高压缩率压缩。高压缩率压缩牺牲CPU占用时间来获得更高的压缩率。当Android应用需要进行文件压缩操作时,获取当前CPU占用率,若CPU占用率高于既定阈值(60%),选取lz4普通压缩,压缩操作不会过多占用CPU时间,避免影响用户的其他操作,造成不良的使用体验;若CPU占用率低于既定阈值(60%),选择lz4高压缩率压缩,压缩后的文件大小更小,节约存储空间。目前对如何在Android平台上高效地对文件进行压缩,提高系统运行效率,合理使用内存,节约用户存储空间,提高系统运行流畅度还没有相应的方法。
发明内容
针对上述问题,本发明提出了手机系统运行状态下动态切换lz4压缩算法类型的方法,在Android平台上高效地对文件进行压缩,提高系统运行效率,合理使用内存,节约用户存储空间,提高系统运行流畅度。
本发明通过以下技术方案来实现上述目的:
手机系统运行状态下动态切换lz4压缩算法类型的方法,步骤如下:
在Android平台上需要对文件进行压缩时,计算当前cpu的占用率;
获取了当前空闲RAM的大小;
根据当前空闲RAM的大小动态设置压缩过程中块的大小;
根据当前cpu的占用率动态选择lz4压缩算法的类型:若当前cpu占用率高于既定阈值,选择lz4普通压缩算法,否则,选择lz4高压缩率算法。
进一步方案为,具体步骤如下:
读取解析/proc/meminfo文件的内容,得到空闲RAM的大小为:totalFree=memFree+cached;
若totalFree远大于4MB,则设置压缩过程中块的大小为4MB,否则,根据totalFree的具体值在64K,256K,1M中选择一个合适值作为压缩过程中块的大小;
/proc/stat文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻;CPU占用率的计算方法为:
①采样两个时间间隔的CPU快照,分别记为t1,t2:其中t1,t2的结构为(user,nice,system,idle,iowait,irq,softirq,stealstolen,gust)的九元组;
②计算CPU时间片total:把第一次CPU使用情况求和,得到s1;把第二次CPU使用情况求和,得到s2,则s2-s1为此时间间隔内的所有时间片,即total=s2-s1;
③计算CPU空闲时间idle:idle对应元组中第四列的数据:idle=idle1-idle2;
④计算CPU占用率cpu_occupation:cpu_occupation=100%*(total-idle)/total;
若当前CPU占用率高于既定阈值,调用124普通压缩算法,否则,调用lz4高压缩率压缩算法。
进一步方案为,所述时间间隔为1ms。
进一步方案为,所述既定阈值为60%。
本发明的有益效果在于:
本发明提出了手机系统运行状态下动态切换lz4压缩算法类型的方法,通过本发明的方法,能在Android系统或应用对文件进行压缩时,高效利用CPU资源,合理使用内存,节约用户存储空间,提高Android系统运行流畅度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是计算CPU占用率流程示意图;
图2是动态切换lz4算法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
在任一实施例中,如图1-2所示,本发明的手机系统运行状态下动态切换lz4压缩算法类型的方法,步骤如下:
在Android平台上需要对文件进行压缩时,计算当前cpu的占用率;
获取了当前空闲RAM的大小;
根据当前空闲RAM的大小动态设置压缩过程中块的大小;
根据当前cpu的占用率动态选择lz4压缩算法的类型:若当前cpu占用率高于既定阈值,选择lz4普通压缩算法,否则,选择lz4高压缩率算法。
在一个具体实施例中,如图1-2所示,本发明的手机系统运行状态下动态切换lz4压缩算法类型的方法,具体步骤如下:
读取解析/proc/meminfo文件的内容,得到空闲RAM的大小为:totalFree=memFree+cached;
若totalFree远大于4MB,则设置压缩过程中块的大小为4MB,否则,根据totalFree的具体值在64K,256K,1M中选择一个合适值作为压缩过程中块的大小;
/proc/stat文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻;CPU占用率的计算方法为:
①采样两个时间间隔的CPU快照,分别记为t1,t2:其中t1,t2的结构为(user,nice,system,idle,iowait,irq,softirq,stealstolen,gust)的九元组;所述时间间隔为1ms。
②计算CPU时间片total:把第一次CPU使用情况求和,得到s1;把第二次CPU使用情况求和,得到s2,则s2-s1为此时间间隔内的所有时间片,即total=s2-s1;
③计算CPU空闲时间idle:idle对应元组中第四列的数据:idle=idlel-idle2;
④计算CPU占用率cpu_occupation:cpu_occupation=100%*(total-idle)/total;
若当前CPU占用率高于既定阈值,所述既定阈值为60%,调用lz4普通压缩算法,否则,调用lz4高压缩率压缩算法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (4)
1.手机系统运行状态下动态切换1z4压缩算法类型的方法,其特征在于,步骤如下:
在Android平台上需要对文件进行压缩时,计算当前cpu的占用率;
获取了当前空闲RAM的大小;
根据当前空闲RAM的大小动态设置压缩过程中块的大小;
根据当前cpu的占用率动态选择lz4压缩算法的类型:若当前cpu占用率高于既定阈值,选择1z4普通压缩算法,否则,选择1z4高压缩率算法。
2.如权利要求1所述手机系统运行状态下动态切换1z4压缩算法类型的方法,其特征在于,具体步骤如下:
读取解析/proc/meminfo文件的内容,得到空闲RAM的大小为:totalFree=memFree+cached;
若totalFree远大于4MB,则设置压缩过程中块的大小为4MB,否则,根据totalFree的具体值在64K,256K,1M中选择一个合适值作为压缩过程中块的大小;
/proc/stat文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻;CPU占用率的计算方法为:
①采样两个时间间隔的CPU快照,分别记为t1,t2:其中t1,t2的结构为(user,nice,system,idle,iowait,irq,softirq,stealstolen,gust)的九元组;
②计算CPU时间片total:把第一次CPU使用情况求和,得到s1;把第二次CPU使用情况求和,得到s2,则s2-s1为此时间间隔内的所有时间片,即total=s2-s1;
③计算CPU空闲时间idle:idle对应元组中第四列的数据:idle=idle1-idle2;
④计算CPU占用率cpu_occupation:cpu_occupation=100%*(total-idle)/total;
若当前CPU占用率高于既定阈值,调用1z4普通压缩算法,否则,调用lz4高压缩率压缩算法。
3.如权利要求2所述手机系统运行状态下动态切换1z4压缩算法类型的方法,其特征在于,所述时间间隔为1ms。
4.如权利要求1-2所述手机系统运行状态下动态切换1z4压缩算法类型的方法,其特征在于,所述既定阈值为60%。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910494546.XA CN110209640A (zh) | 2019-06-06 | 2019-06-06 | 手机系统运行状态下动态切换lz4压缩算法类型的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910494546.XA CN110209640A (zh) | 2019-06-06 | 2019-06-06 | 手机系统运行状态下动态切换lz4压缩算法类型的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110209640A true CN110209640A (zh) | 2019-09-06 |
Family
ID=67791475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910494546.XA Pending CN110209640A (zh) | 2019-06-06 | 2019-06-06 | 手机系统运行状态下动态切换lz4压缩算法类型的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110209640A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837343A (zh) * | 2019-09-27 | 2020-02-25 | 华为技术有限公司 | 处理快照的方法、装置及终端 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752798A (zh) * | 2012-07-23 | 2012-10-24 | 重庆大学 | 一种无线传感器网络数据无损压缩的方法 |
CN102831245A (zh) * | 2012-09-17 | 2012-12-19 | 洛阳翔霏机电科技有限责任公司 | 一种关系型数据库的实时数据存储和读取方法 |
CN102981857A (zh) * | 2012-12-04 | 2013-03-20 | 天津神舟通用数据技术有限公司 | 数据库集群的并行压缩海量数据装载方法 |
CN104699736A (zh) * | 2014-11-21 | 2015-06-10 | 北京华悦科技有限公司 | 一种分布式的基于可移动设备的大规模数据采集系统及方法 |
CN105207678A (zh) * | 2015-09-29 | 2015-12-30 | 东南大学 | 一种改进型lz4压缩算法的硬件实现系统 |
CN105677259A (zh) * | 2016-02-29 | 2016-06-15 | 珠海市魅族科技有限公司 | 一种移动终端中存储文件的方法及移动终端 |
CN105760245A (zh) * | 2016-02-03 | 2016-07-13 | 华为技术有限公司 | 一种存储数据的方法及装置 |
CN108242931A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种数据压缩提供方法 |
CN108427538A (zh) * | 2018-03-15 | 2018-08-21 | 深信服科技股份有限公司 | 全闪存阵列的存储数据压缩方法、装置、及可读存储介质 |
-
2019
- 2019-06-06 CN CN201910494546.XA patent/CN110209640A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752798A (zh) * | 2012-07-23 | 2012-10-24 | 重庆大学 | 一种无线传感器网络数据无损压缩的方法 |
CN102831245A (zh) * | 2012-09-17 | 2012-12-19 | 洛阳翔霏机电科技有限责任公司 | 一种关系型数据库的实时数据存储和读取方法 |
CN102981857A (zh) * | 2012-12-04 | 2013-03-20 | 天津神舟通用数据技术有限公司 | 数据库集群的并行压缩海量数据装载方法 |
CN104699736A (zh) * | 2014-11-21 | 2015-06-10 | 北京华悦科技有限公司 | 一种分布式的基于可移动设备的大规模数据采集系统及方法 |
CN105207678A (zh) * | 2015-09-29 | 2015-12-30 | 东南大学 | 一种改进型lz4压缩算法的硬件实现系统 |
CN105760245A (zh) * | 2016-02-03 | 2016-07-13 | 华为技术有限公司 | 一种存储数据的方法及装置 |
CN105677259A (zh) * | 2016-02-29 | 2016-06-15 | 珠海市魅族科技有限公司 | 一种移动终端中存储文件的方法及移动终端 |
CN108242931A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种数据压缩提供方法 |
CN108427538A (zh) * | 2018-03-15 | 2018-08-21 | 深信服科技股份有限公司 | 全闪存阵列的存储数据压缩方法、装置、及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
BW_0927: "proc文件系统解析", 《博客园HTTPS://WWW.CNBLOGS.COM/MY_LIFE/ARTICLES/5193504.HTML》 * |
YEYUWUHEN1203: "Linux平台Cpu使用率的计算", 《CSDN博客 HTTPS://BLOG.CSDN.NET/YEYUWUHEN1203/ARTICLE/DETAILS/76649691/》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837343A (zh) * | 2019-09-27 | 2020-02-25 | 华为技术有限公司 | 处理快照的方法、装置及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354562B (zh) | 内存清理系统和内存清理方法 | |
CN110765031B (zh) | 数据存储方法、装置、移动终端及存储介质 | |
EP3349130B1 (en) | Data compression method and storage system | |
CN105550123A (zh) | 电子装置及其存储空间管理方法 | |
TWI493446B (zh) | 記憶體管理方法及記憶體管理裝置 | |
CN110209640A (zh) | 手机系统运行状态下动态切换lz4压缩算法类型的方法 | |
CN111723057A (zh) | 一种文件预读方法、装置、设备及存储介质 | |
CN114422992A (zh) | 双系统蓝牙装置及电子设备 | |
CN104394675A (zh) | 一种终端 | |
CN116204308A (zh) | 音视频算力动态调节方法和装置、电子设备 | |
CN108681469B (zh) | 基于Android系统的页面缓存方法、装置、设备及存储介质 | |
CN111176570B (zh) | 一种厚置备卷创建方法、装置、设备及介质 | |
CN109445863B (zh) | 一种基于fpga的数据处理方法、装置、设备及介质 | |
CN108648136B (zh) | 对二维查找表进行压缩的方法及装置 | |
CN109582460B (zh) | 一种Redis内存数据的淘汰方法和装置 | |
CN114060131B (zh) | 一种柴油机排放控制方法、装置、柴油机车辆及介质 | |
CN114896222A (zh) | 日志数据处理方法、装置、计算机设备、系统 | |
CN111176848B (zh) | 集群任务的处理方法、装置、设备和存储介质 | |
CN113641674A (zh) | 一种自适应全局序号发生方法和装置 | |
CN115712337A (zh) | 处理器的调度方法、装置、电子设备及存储介质 | |
CN113495669A (zh) | 一种解压装置、加速器、和用于解压装置的方法 | |
JP2018505489A (ja) | システムオンチップにおける動的メモリ利用 | |
JPH0212554A (ja) | 入出力バッファ割付方式 | |
CN117632521B (zh) | 后台任务的cpu利用率控制方法、装置、设备及存储介质 | |
CN113010273B (zh) | 一种人力资源数据分布式任务处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190906 |
|
RJ01 | Rejection of invention patent application after publication |