CN110929478A - 一种匿名网页压缩的方法、装置及*** - Google Patents

一种匿名网页压缩的方法、装置及*** Download PDF

Info

Publication number
CN110929478A
CN110929478A CN201811020735.5A CN201811020735A CN110929478A CN 110929478 A CN110929478 A CN 110929478A CN 201811020735 A CN201811020735 A CN 201811020735A CN 110929478 A CN110929478 A CN 110929478A
Authority
CN
China
Prior art keywords
zram
page
compression
anonymous
compressing
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
Application number
CN201811020735.5A
Other languages
English (en)
Inventor
李培锋
苏佳佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN201811020735.5A priority Critical patent/CN110929478A/zh
Publication of CN110929478A publication Critical patent/CN110929478A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明提出了一种匿名网页压缩的方法,用于软件linux的Zram中,包括:S1.识别不同场景的进程;S2.基于识别的不同的进程,将相应的匿名页面压缩到具有不同的压缩算法的Zram中。本发明还公开了一种并行启动的装置和***。实施本发明的技术方案中,针对不同场景,将不同的匿名页面压缩在不同压缩算法的Zram,提高各个场景的Zram性能。

Description

一种匿名网页压缩的方法、装置及***
技术领域
本发明涉及一种linux原生软件框架领域,特别涉及一种匿名网页压缩的方法、装置及***。
背景技术
Linux是一套***和自由传播的类Unix操作***,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作***。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作***。
Zram是linux的一种内存优化技术,基本工作原理是:通过划定一片区域,将压缩过后的硬盘数据放入该区域,以实现高速读取。Zram(也称为Zram,先前称为compcache)是Linux内核的一项功能,可提供虚拟内存压缩。Zram通过在RAM内的压缩块设备上分页,直到必须使用硬盘上的交换空间,以避免在磁盘上进行分页,从而提高性能。
根据Linux原生的软件框架,Zram针对匿名页面的压缩都是采用同一种压缩算法,这种不分场景的统一压缩,如果采用解压速度快的算法,容易导致内存压缩率不高,如果采用压缩率高的算法,容易导致某些需要快读响应的进程解压缩内存不及时,另外对频繁调用的进程进行内存压缩也会导致无谓的***开销。
发明内容
为了解决以上的问题,本发明能提供一种用于针对不同场景,将不同进程的匿名页面压缩在不同压缩算法的Zram,提高各个场景的Zram性能的匿名网页压缩的方法、装置及***。
本发明的技术方案是这样实现的:
本发明公开了一种匿名网页压缩的方法,用于软件linux的Zram中,包括:
S1.识别不同场景的进程;
S2.基于识别的不同的进程,将相应的匿名页面压缩到具有不同的压缩算法的Zram中。
进一步地,所述的步骤S2,具体是:
若是需要快速响应的进程,则将对应的匿名页面压缩到第一压缩率的Zram中;
若是不需要实时的进程,则将对应的匿名页面压缩到第二压缩率的Zram中;
若是频繁调用的进程,则将对应的匿名页面不进行压缩。
进一步地,所述的识别的不同的进程,具体是:
调用缺页中断;
识别申请的页面的进程名和/或进程标记和/或页面状态参数。
进一步地,所述的Zram至少为两个,将同一进程的页面尽可能平摊到同一压缩算法的一个Zram中;且,当一个Zram压满后,会自动将页面压缩到另一个非满的Zram中。
本发明公开了一种匿名网页压缩的装置,用于软件linux的Zram中,包括:
进程识别单元,用于识别不同场景的进程;
页面压缩单元,用于基于识别的不同的进程,将相应的匿名页面压缩到具有不同的压缩算法的Zram中。
进一步地,所述的页面压缩单元,具体是:
第一压缩单元,用于当若是需要快速响应的进程,则将对应的匿名页面压缩到第一压缩率的Zram中;
第二压缩单元,用于当若是不需要实时的进程,则将对应的匿名页面压缩到第二压缩率的Zram中;
第三压缩单元,用于当若是频繁调用的进程,则将对应的匿名页面不进行压缩。
进一步地,所述的识别的不同的进程,具体是:
调用缺页中断;
识别申请的页面的进程名和/或进程标记和/或页面状态参数。
进一步地,所述的Zram至少为两个,将同一进程的页面尽可能平摊到同一压缩算法的一个Zram中;且,当一个Zram压满后,会自动将页面压缩到另一个非满的Zram中。
本发明公开了一种匿名网页压缩的***,包括linux原生软件框架,其特征在于,所述的linux原生软件框架具有上述的装置。
实施本发明的一种匿名网页压缩的方法、装置及***,具有以下有益的技术效果:
区别于现有技术的Linux原生软件框架中,Zram针对匿名页面的压缩都是采用同一种压缩算法,这种不分场景的统一压缩,如果采用解压速度快的算法,容易导致内存压缩率不高,如果采用压缩率高的算法,容易导致某些需要快读响应的进程解压缩内存不及时,另外对频繁调用的进程进行内存压缩也会导致无谓的***开销的不足。针对以上问题,本技术方案针对不同场景,将不同的匿名页面压缩在不同压缩算法的Zram,提高各个场景的Zram性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例一种并行启动的方法流程图;
图2为匿名页面的标记示意图;
图3为匿名页面的标记的压缩示意图;
图4为本发明的实施例一种并行启动的装置模块图;
图5为本发明的实施例一种并行启动的***模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前主流上对Zram的使用基本都是遵循原生代码逻辑,对匿名页面的压缩都是采用统一压缩的策略,另外有些厂商通过多通道并行压缩和解压缩的方法来提高内存压缩吞吐率。
请参阅图1,实施例一,一种匿名网页压缩的方法,用于软件linux的Zram中,包括:
S1.识别不同场景的进程;
例如,有些是显示网页的进程,有些是后台的进程,如USB进程、视频进程等,人们需要解压网页的进程运行较快,而后台的进程运行快慢由于不直接与用户互动,解压后台的进程运行可以较慢。
S2.基于识别的不同的进程,将相应的匿名页面压缩到具有不同的压缩算法的Zram中。
例如,显示网页的进程,则压缩少一些,大约是50%即可,有些是后台的进程,如USB进程、视频进程等,则压缩多一些,大约是80%。在解压缩时,压缩少的解压缩更快一些。
在Zram压缩过程中将页面平均分配到不同的Zram中,也提高了内存压缩的吞吐率。将匿名页面分级压缩,根据不同的场景进行不同程度的压缩,提高Zram在不同场景的性能。
步骤S2,具体是:
若是需要快速响应的进程,则将对应的匿名页面压缩到第一压缩率的Zram中;
第一压缩率为较少的压缩率,压缩率大约是原文件的30%~50%。
若是不需要实时的进程,则将对应的匿名页面压缩到第二压缩率的Zram中;
第二压缩率为较多的压缩率,压缩率大约是原文件的60%~80%。
若是频繁调用的进程,则将对应的匿名页面不进行压缩。
识别的不同的进程,具体是:
调用缺页中断;
识别申请的页面的进程名和/或进程标记和/或页面状态参数。
Zram至少为两个,将同一进程的页面尽可能平摊到同一压缩算法的一个Zram中;且,当一个Zram压满后,会自动将页面压缩到另一个非满的Zram中。
下面进一步地详细说明:
如图2所示,本设计主要对应用匿名页面的压缩进行分级管理,将不同进程的匿名页面进行不同程度的压缩。
本设计复用了page的flags成员,该参数用于表示页面的状态,使用到该成员的[NR_PAGEFLAGS-1]和[NR_PAGEFLAGS-2]位,对应PG_Zram_skip(不压缩进程)和PG_Zram_grade(可感知进程),page不标记(none)对应是的普通进程。
如图3所示,PG_Zram_grade(可感知进程),page不标记(none)分别需要压缩到Zram_lz4及Zram-lzo中。当缺页中断分配好页面时,根据进程的判断,将对flags进行标记,当判断该匿名页面所对应的进程需要快速响应,则将进程压缩到解压速度更快的Zram-lz4中,如果判断是非实时性的后台进程,则压缩到压缩率更高的Zram-lzo中,如果是频繁调用的进程,则不进行Zram压缩。
对于应用进程的匿名页面申请的途径最终都会通过缺页中断进行申请页面,此时可以通过判断进程的进程名和进程的oom_score_adj来判断该进程是否要频繁调用以及判断进程是否需要快速响应?例如surfaceflinger该类型需要频繁使用的进程等,其匿名页面标记为不进行Zram压缩,例如前台进程等可感知进程则标记为压缩到解压速度较快的Zram_lz4,其他进程标记为压缩到压缩率较高的Zram_lzo。
匿名页面的解压缩
页面被压缩到不同的Zram中,压缩时会将swap_entry记录到page->private中,当发生缺页中断,发现是被压缩到Zram中时,***通过swao_entry即可找到对应的Zram进行解压缩。
本设计为***实现了2的倍数个Zram,其中一半为Zram-lz4,一半为Zram-lzo。
当***根据page->flags选择后Zram的类型后,会自动判断Zram是否空闲,选择空闲的Zram进行页面压缩。
根据页面局部性原理,将同一进程的页面尽可能平摊到同一压缩算法的不同Zram中,有利于解压缩时减少代码同步操作;
当某一类型的Zram压满后,会自动将页面压缩到其他类型非满的的Zram,避免某一类型的Zram压满后,其对应的进程无法进行匿名页面的压缩的问题。
本设计的目的是将Zram压缩分级,其优势是可以根据不同的场景进行不同程度的压缩,使得需要快速响应进程的匿名页面解压缩速度更快,而不需要快速响应的进程的匿名页面压缩率更高,而频繁调用的进程的匿名页面则不进行压缩,可以避免频繁缺页和压缩导致性能的损耗。
以下介绍实现以上方法的装置,在装置中没有记载的部分,可参考以上方法的记载。
请参阅图4,一种匿名网页压缩的装置1,用于软件linux的Zram中,包括:
进程识别单元10,用于识别不同场景的进程;
页面压缩单元20,用于基于识别的不同的进程,将相应的匿名页面压缩到具有不同的压缩算法的Zram中。
页面压缩单元20,具体是:
第一压缩单元201,用于当若是需要快速响应的进程,则将对应的匿名页面压缩到第一压缩率的Zram中;
第二压缩单元202,用于当若是不需要实时的进程,则将对应的匿名页面压缩到第二压缩率的Zram中;
第三压缩单元203,用于当若是频繁调用的进程,则将对应的匿名页面不进行压缩。
识别的不同的进程,具体是:
调用缺页中断;
识别申请的页面的进程名和/或进程标记和/或页面状态参数。
匿名页面压缩Zram选择
当***内存紧张触发kswap时,会将部分非活跃匿名页面压缩到Zram中,压缩之前本设计先判断page的flags成员是否有个PG_Zram_skip标志,如果是的话,则不压缩;接着判断是否有PG_Zram_grade标志,如果是的话,选择解压速度更快的Zram-lz4,;否则压缩到压缩率更高的Zram_lzo中。
Zram至少为两个,将同一进程的页面尽可能平摊到同一压缩算法的一个Zram中;且,当一个Zram压满后,会自动将页面压缩到另一个非满的Zram中。
请参阅图5,一种匿名网页压缩的***100,包括linux原生软件框架200,linux原生软件框架200具有上述的装置1。
实施本发明的一种匿名网页压缩的方法、装置及***,具有以下有益的技术效果:
区别于现有技术的Linux原生软件框架中,Zram针对匿名页面的压缩都是采用同一种压缩算法,这种不分场景的统一压缩,如果采用解压速度快的算法,容易导致内存压缩率不高,如果采用压缩率高的算法,容易导致某些需要快读响应的进程解压缩内存不及时,另外对频繁调用的进程进行内存压缩也会导致无谓的***开销的不足。针对以上问题,本技术方案针对不同场景,将不同的匿名页面压缩在不同压缩算法的Zram,提高各个场景的Zram性能。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或至少一个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或至少一个流程和/或方框图一个方框或至少一个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或至少一个流程和/或方框图一个方框或至少一个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或至少一个流程和/或方框图一个方框或至少一个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种匿名网页压缩的方法,用于软件linux的 Zram中,其特征在于,包括:
S1.识别不同场景的进程;
S2.基于识别的不同的进程,将相应的匿名页面压缩到具有不同的压缩算法的Zram中。
2.根据权利要求1所述的方法,其特征在于,所述的步骤S2,具体是:
若是需要快速响应的进程,则将对应的匿名页面压缩到第一压缩率的Zram中;
若是不需要实时的进程,则将对应的匿名页面压缩到第二压缩率的Zram中;
若是频繁调用的进程,则将对应的匿名页面不进行压缩。
3.根据权利要求1所述的方法,其特征在于,所述的识别的不同的进程,具体是:
调用缺页中断;
识别申请的页面的进程名和/或进程标记和/或页面状态参数。
4.根据权利要求1所述的方法,其特征在于,所述的Zram至少为两个,将同一进程的页面尽可能平摊到同一压缩算法的一个Zram中;且,当一个Zram压满后,会自动将页面压缩到另一个非满的Zram中。
5.一种匿名网页压缩的装置,用于软件linux的 Zram中,其特征在于,包括:
进程识别单元,用于识别不同场景的进程;
页面压缩单元,用于基于识别的不同的进程,将相应的匿名页面压缩到具有不同的压缩算法的Zram中。
6.根据权利要求5所述的装置,其特征在于,所述的页面压缩单元,具体是:
第一压缩单元,用于当若是需要快速响应的进程,则将对应的匿名页面压缩到第一压缩率的Zram中;
第二压缩单元,用于当若是不需要实时的进程,则将对应的匿名页面压缩到第二压缩率的Zram中;
第三压缩单元,用于当若是频繁调用的进程,则将对应的匿名页面不进行压缩。
7.根据权利要求5所述的装置,其特征在于,所述的识别的不同的进程,具体是:
调用缺页中断;
识别申请的页面的进程名和/或进程标记和/或页面状态参数。
8.根据权利要求5所述的装置,其特征在于,所述的Zram至少为两个,将同一进程的页面尽可能平摊到同一压缩算法的一个Zram中;且,当一个Zram压满后,会自动将页面压缩到另一个非满的Zram中。
9.一种匿名网页压缩的***,包括linux原生软件框架,其特征在于,所述的linux原生软件框架具有权利要求5至8任一项所述的装置。
CN201811020735.5A 2018-09-03 2018-09-03 一种匿名网页压缩的方法、装置及*** Pending CN110929478A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811020735.5A CN110929478A (zh) 2018-09-03 2018-09-03 一种匿名网页压缩的方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811020735.5A CN110929478A (zh) 2018-09-03 2018-09-03 一种匿名网页压缩的方法、装置及***

Publications (1)

Publication Number Publication Date
CN110929478A true CN110929478A (zh) 2020-03-27

Family

ID=69854929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811020735.5A Pending CN110929478A (zh) 2018-09-03 2018-09-03 一种匿名网页压缩的方法、装置及***

Country Status (1)

Country Link
CN (1) CN110929478A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244067A (zh) * 2021-06-10 2023-06-09 荣耀终端有限公司 虚拟内存管理方法和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942342A (zh) * 2014-05-12 2014-07-23 中国人民大学 一种内存数据库oltp&olap并发查询优化方法
CN105204940A (zh) * 2014-05-28 2015-12-30 中兴通讯股份有限公司 一种内存配置方法和装置
JP2018063505A (ja) * 2016-10-12 2018-04-19 富士通株式会社 メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942342A (zh) * 2014-05-12 2014-07-23 中国人民大学 一种内存数据库oltp&olap并发查询优化方法
CN105204940A (zh) * 2014-05-28 2015-12-30 中兴通讯股份有限公司 一种内存配置方法和装置
JP2018063505A (ja) * 2016-10-12 2018-04-19 富士通株式会社 メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244067A (zh) * 2021-06-10 2023-06-09 荣耀终端有限公司 虚拟内存管理方法和电子设备
CN116244067B (zh) * 2021-06-10 2024-05-03 荣耀终端有限公司 虚拟内存管理方法和电子设备

Similar Documents

Publication Publication Date Title
US9329873B2 (en) Method and device, terminal and computer readable medium for accelerating startup of operating system
JP2022519855A (ja) ビデオストリーム復号方法、装置、端末機器およびプログラム
US9471342B2 (en) Register mapping
CN106383880B (zh) 一种gif文件的播放方法及***
JP6882992B2 (ja) 動画像をプレビューする方法及びデバイス、並びに表現パッケージを表示する方法及びデバイス
CN108021449B (zh) 一种协程实现方法、终端设备及存储介质
CN113730922B (zh) 图形渲染方法、装置、电子设备及存储介质
US9430399B2 (en) Multi-core online patching method and apparatus
CN109683983B (zh) 一种镜像文件的生成及加载方法、设备
CN111708642A (zh) Vr***中处理器性能优化方法、装置及vr设备
US11816347B1 (en) Creating virtual machine snapshots without interfering with active user sessions
CN103164227B (zh) 一种窗口图像的采集方法及装置
CN115543530A (zh) 一种虚拟机迁移方法以及相关装置
CN110716813A (zh) 数据流处理方法、装置、可读存储介质及处理器
CN110929478A (zh) 一种匿名网页压缩的方法、装置及***
CN108664299A (zh) 一种帧动画的播放控制方法、装置和移动设备
CN111290848A (zh) 一种内存优化方法、终端和计算机可读存储介质
CN107469352B (zh) 游戏前端的资源缓存方法、存储介质
CN111338803A (zh) 一种线程处理方法和装置
CN108416830B (zh) 动画显示控制方法、装置、设备及存储介质
CN115328656A (zh) 动态内存智能化扩展方法、装置、设备及存储介质
CN113032098B (zh) 一种虚拟机调度方法、装置、设备及可读存储介质
CN114489930A (zh) 一种虚拟机热迁移方法、装置及***
CN113781658A (zh) 一种流式处理3d模型数据的方法及装置
CN112035656A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200327